Идея состоит в том, что я хотел бы повторно использовать код, а не дублировать его. Ниже UnManagedB происходит от UnmanagedA. Обе структуры имеют соответствующие управляемые оболочки, как показано ниже. Я хотел бы получить ManagedB из ManagedA, чтобы я мог повторно использовать свойства в ManagedA для ManagedB. Проблема в том, что оба класса имеют свои собственные указатели на неуправляемые объекты. Неуправляемый объект в производном - это все, что я хочу, и я хочу, чтобы все свойства использовали указатель UnManagedB. Есть ли способ сделать это?
struct UnManagedA {
unsigned int size;
};
struct UnManagedB:UnManagedA {
int length;
int width;
};
public ref class A : public System::IDisposable {
public:
A();
!A();
~A();
property System::UInt32 Size {
System::UInt32 get();
void set(System::UInt32 value);
}
internal:
UnmanagedA* GetUnmanaged() { return obj1; }
private:
UnmanagedA* obj1;
};
public ref class B : public System::IDisposable, public A {
public:
B();
!B();
~B();
property System::UInt32 Length {
System::UInt32 get();
void set(System::UInt32 value);
}
property System::UInt32 Width {
System::UInt32 get();
void set(System::UInt32 value);
}
internal:
UnmanagedB* GetUnmanaged() { return obj2; }
private:
UnmanagedB* obj2;
};