gpt4 book ai didi

c++ - 派生节点类

转载 作者:行者123 更新时间:2023-11-28 04:50:48 29 4
gpt4 key购买 nike

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

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?
*/
}

最佳答案

您可以类型转换(类到类)或复制构造函数

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

}

关于c++ - 派生节点类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48258281/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com