gpt4 book ai didi

c++ - 不应调用基类的复制构造函数

转载 作者:行者123 更新时间:2023-11-28 05:59:33 25 4
gpt4 key购买 nike

这只是解释类层次结构的代码片段,而不是实际有问题的代码

class A
{};

class B : public class C
{};

class C : public NocopyClass // constructors are private in Nocopy class
{};

template<typename T1, typename T2>
class D
public:
T1 _t1;
T2 _t2;
D(T1& t1, T2& t2) : _t1(t1),_t2(t2) {}

{
};

class E: public class D<A,B>
{
E(const& a,const& b) : D<A,B>(a,b) {}
};

调用函数:

A objA;
B objB;

E objE(objA,objB);

我想从调用程序中将 A 的对象和 B 的对象传递给类 E这里调用 E 中定义的复制构造函数,复制 A 和 B 的对象,依次调用类 B 的复制构造函数,直到超基类 NocopyClass 复制构造函数,它不允许复制对象。

如何修改调用函数以不调用基类构造函数?有什么办法吗?

最佳答案

尝试将 _t1 和 _t2 声明为引用。

template<typename T1, typename T2>
{
class D
public:
T1 &_t1;
T2 &_t2;
D(T1& t1, T2& t2) : _t1(t1),_t2(t2) {}


};

关于c++ - 不应调用基类的复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33547562/

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