类AB中有公有成员函数func,对于类AB的一个对象a,执行语句a.func(10)成功,则func的函数原型可以为:
A. AB& func(int, int = 10);
B. void func(int&) const;
C. const AB* func(const int);
D. AB func(const int&) const;
答案:ACD
解析:B选项错误,非常量的引用的初始值必须是左值,不能直接传入数字。改为 void func(const int&) const 则正确。
class AB { public: AB& func_a(int,int = 50) { std::cout << "func_a" << std::endl; return *this ; } void func_b(const int& ) const { std::cout << "func_b" << std::endl; } const AB* func_c(const int) { std::cout << "func_c" << std::endl; return this; } AB func_d(const int&) const { std::cout << "func_d" << std::endl; return *this; } }; void for_test1() { AB a; a.func_a(20); a.func_b(20); a.func_c(20); a.func_d(20); }