📜  C++ |函数重载和默认参数问题4

📅  最后修改于: 2021-05-25 18:36:22             🧑  作者: Mango

预测以下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基础课程》。