Tim*_*ney 1 c++ constructor type-conversion implicit-conversion
我有一个C可以转换为类的类A和一个A*作为参数的函数.我想用a调用它C*,但我似乎无法让转换构造函数工作.我明白了:error: cannot convert ‘C*’ to ‘A*’ for argument ‘1’ to ‘void doSomething(A*)’.我究竟做错了什么?
class C {
};
class A {
public:
A(C* obj) {}
};
void doSomething(A* object);
int main()
{
C* object = new C();
doSomething(object);
}
Run Code Online (Sandbox Code Playgroud)
在您的情况下,只能为用户定义的类型定义转换构造函数A.但是,它们不像指针那样适用于基本类型.A*
如果doSomething是A const&取代(或简单地A),那么转换构造函数将按预期调用.
| 归档时间: |
|
| 查看次数: |
420 次 |
| 最近记录: |