1
4

3 回答 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 回答