C++11 C++;:不是从obj1转换为obj2,而是从obj1*转换为obj2?

C++11 C++;:不是从obj1转换为obj2,而是从obj1*转换为obj2?,c++11,type-conversion,C++11,Type Conversion,MyClass的构造函数获取指向另一个此类对象的指针 > C++ MyClass 在功能上与基于“Type”结构的“C”类相同,称为“代码> MyType”< /COD>。(C++类基本上是旧C代码的包装器)。我希望能够在 MyCube */COD>中通过任何地方,我可以在 MyType T**/Cube >之前。 我想写一个任意MyClass*到MyType_T*的自动转换,但我想让我感到困惑的是,我写的类型转换器是为了采用MyClass而不是MyClass*。尽管我确信这就是问题所在,但

MyClass
的构造函数获取指向另一个此类对象的指针

<> > C++ <代码> MyClass <代码>在功能上与基于“Type”结构的“C”类相同,称为“代码> MyType”< /COD>。(C++类基本上是旧C代码的包装器)。我希望能够在<代码> MyCube */COD>中通过任何地方,我可以在<代码> MyType T**/Cube >之前。

我想写一个任意MyClass*到MyType_T*的自动转换,但我想让我感到困惑的是,我写的类型转换器是为了采用
MyClass
而不是
MyClass*
。尽管我确信这就是问题所在,但我想不出什么语法可以解决它。我曾想过创建一个cast的friend实现,但我不能将它放在
类MyClass
的定义之前,因为它不知道
东西的偏移量。我不能把
classmyclass
的定义放在后面,因为
MyClass
构造函数想要使用这种转换

 typedef struct MyStruct {
    int iFoo;
    struct MyType* ptypeParent;
} MyType_T;

void MyTypeCreator( MyType_T* ptypeSelf, int iFoo_in, MyType_T* ptypeParent );

class MyClass {

public:
    MyClass( int iFoo, MyClass* pclassParent ) {

        MyTypeCreator( &thing, iFoo, pclassParent ); <--------------- PROBLEM
        MyTypeCreator( &thing, iFoo, &pclassParent->thing ); <------- WORKS
    };

    operator MyType_T*() { return &thing; } <---------------- INCORRECT: attempts to convert MyClass, not MyClass*, to MyType_T*.

    MyType_T thing;
};
typedef结构MyStruct{
int-iFoo;
结构MyType*ptypeParent;
}MyType_T;
作废MyTypeCreator(MyType\u T*ptypeSelf、int-iFoo\u-in、MyType\u T*ptypeParent);
类MyClass{
公众:
MyClass(int-iFoo,MyClass*pclassParent){

MyTypeCreator(&thing、iFoo、pclassParent)“<代码> MyType”< /C> >,有<代码> MyClass < /C> >从代码< MyType > < /C> >中获得。然后,代码> MyCype */Cux>指针将隐式转换为<代码> MyType T**/Cuth>指针。@ IGORANTTDENIK好主意,我会考虑!我对C++的这一点很好奇。C++中没有办法。使一种类型的指针隐式转换为另一种不相关的指针类型。