OO中的C++隐式转换

C++ implicit cast in OO

本文关键字:转换 C++ 中的 OO      更新时间:2023-10-16

我的代码:

class myAbstractClass{
}
class dev1: public myAbstractClass{
}
class dev2: public myAbstractClass{
  public:
  myAbstractClass* temp;
  dev2(myAbstractClass* tmp) { temp=tmp; }
}
int _tmain(){
  dev1 d;
  dev2 derived2(d);

如何做到这一点?

错误C2040:"v":"dev2"的间接级别与"myAbstractClass*"不同错误C2512:"dev2":没有合适的默认构造函数可用

由于构造函数采用指针,因此传递对象的地址!

int _tmain()
{ 
      dev1 d; 
      dev2 derived2(&d); // &d
}

要转换为基的指针或引用,基需要是public。使用class关键字时,默认情况下继承为private