预测以下C++程序的输出。
include
using namespace std;
class Test
{
protected:
int x;
public:
Test (int i):x(i) { }
void fun() const { cout << "fun() const " << endl; }
void fun() { cout << "fun() " << endl; }
};
int main()
{
Test t1 (10);
const Test t2 (20);
t1.fun();
t2.fun();
return 0;
}
(A)编译器错误
(B)好玩的
fun()const
(C) fun()常量
fun()const
(D)好玩的
乐趣()答案: (B)
说明:两种方法“ void fun()const”和“ void fun()”具有相同的签名,除了一个是const而另一个不是。另外,如果我们仔细看一下输出,会发现在const对象上调用了“ const void fun()”,而在非const对象上调用了“ void fun()”。
C++允许根据const类型重载成员方法。当函数返回引用或指针时,基于const类型的重载可能会很有用。我们可以使一个函数const返回一个const引用或const指针,另一个非const函数另一个返回非const引用或指针。有关更多详细信息,请参见以下内容。
函数重载和const关键字
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。