【发布时间】:2011-02-10 09:14:36
【问题描述】:
参加以下课程:
class mytype {
double num;
public:
mytype(int a) {
num = sqrt(a);
}
void print() {
cout << num;
}
}
假设有一个采用 mytype 的方法:
void foo(mytype a) {
a.print();
}
调用 foo(4) (理论上)会输出 2 是否合法 c++(或者有办法实现)?据我所知,您可以从用户定义的类中重载类型转换,但不能重载。构造函数能否以符合标准的方式执行此操作(当然,假设构造函数不是显式的)。希望最终有办法让这个合法:
int a;
cin >> a;
foo(a);
注意:这显然不是实际问题,而只是用于发布目的的示例。由于继承和其他程序特定问题,我不能只是重载函数。
【问题讨论】:
标签: c++ constructor type-conversion