C++运算符重载问题6

预测产量

null

#include<iostream>
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。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享