问问题
611 次
3 回答
5
在您的情况下,只能为用户定义的类型定义转换构造函数A
。但是,它们不适用于作为指针的基本类型,例如.A*
如果doSomething
使用了一个A const&
代替(或简单的一个A
),那么转换构造函数将按照您的预期被调用。
于 2012-12-24T22:51:57.403 回答
3
如果您的主要要求是能够调用现有的 doSomething 函数,那么您可以这样做:
int main()
{
C* object = new C();
A a(object);
doSomething(&a);
// May need to delete object here -- depends on ownership semantics.
}
于 2012-12-24T22:57:12.220 回答
0
您可能的意思是您希望 C 成为 A 的子类:
class C : public A {
...
};
于 2012-12-24T23:04:46.870 回答