预测输出
#include
using namespace std;
class A
{
int i;
public:
A(int ii = 0) : i(ii) {}
void show() { cout << i << endl; }
};
class B
{
int x;
public:
B(int xx) : x(xx) {}
operator A() const { return A(x); }
};
void g(A a)
{
a.show();
}
int main()
{
B b(10);
g(b);
g(20);
return 0;
}
(A)编译器错误
(B)
10
20
(C)
20
20
(D)
10
10
答案: (B)
说明:请注意,类B的as转换运算符重载,因此B的对象可以转换为A的对象。
此外,类A具有可以使用单个整数参数调用的构造函数,因此可以将int转换为A。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。