2013-10-27 319 views
0

假设我正在创建一棵树,并且我有一类节点和一类汽车。继承类。 C++

class Cars : public Node{ 
    .... 
    }; 

如果我都准备好作为节点的对象,但现在我想它,使之成为汽车为好,我将如何做呢?

谢谢!

+2

假设我正确地理解你,恐怕你不能做你想做的事。但是,您可以通过为Cars类定义转换构造函数来指定如何使Cars对象脱离Node对象,从而从现有的Node对象中创建* new * Cars对象。 – Turix

+0

为Cars类创建一个对象,并通过Cars对象调用Node类中的方法。 – ajkumar25

回答

0

你可以做的最接近的是要提供一个转换构造函数为您Cars类,并创建一个新的实例:

class Node 
{ 
    // stuff goes here 
}; 

class Cars : public Node 
{ 
public: 
    // other constructors, destructor, members, etc. 
    Cars(const Node& node) 
    { 
     // copy node data into the Node portion of the car 
    } 
}; 

int main() 
{ 
    Node n; 
    Car c(n); 
    return 0; 
} 

如果您创建为Node第一,你不能神奇将其更改为一个Car而不创建实际的Car实例并将数据复制到其中。