派生节点类

Derived Node class

本文关键字:节点 派生      更新时间:2023-10-16

我有基类,派生类,然后是节点类,它是从派生类派生的。 通常,我会做结构节点,在那里我会有对象对象(作为节点中的数据(。但是,在派生节点类的情况下,这是没有意义的,因为已经调用了派生的构造函数。所以,我的问题是 - 如何将数据分配给节点?

class Base
{
    payload;
};
class Derived : public Base
{
    payload;
};
class Node : public Derived
{
    Node(Object & object);
    /*
    Previously I'd have struct with Object object_, and I 
    would do object = object_ (which would call an overload to
    make a deep copy). But, in this case we already have an instance 
    of Derived, and making another one doesn't seem right. 
    So, my question is to how access that instance to assign 
    passed object to it? Or am I doing something completely stupid?
    */
}

您可以type conversion(类到类(或copy constructor

class Node : public Derived
{
        public:
                Node() {
                }
                /** type conversion operator **/
                operator Derived() {
                        /**  code **/
                }
                /** copy constructor **/
                Node(Node &nd_obj) : Derived(Derived d_obj){    
                        cout<<"Node copy const called "<<endl;
                        cout<<"payload = "<<nd_obj.payload<<endl;
                }
};
int main() {
        Derived d1;
        Node Nd1;
        d1 = Nd1;//type conversion
        Node Nd2 = d1;//copy constructor, make sure exact match is there
}