C ++隐式转换为OO

时间:2012-08-31 22:54:59

标签: c++ oop casting implicit

我的代码:

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':没有合适的默认构造函数

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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