gpt4 book ai didi

c++ - 找不到默认构造函数来初始化 cpp 中的成员

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:03 29 4
gpt4 key购买 nike

请帮我解决这个问题。我试图解决这个问题两个小时。这是我的代码。

class deviceC {

private:
deviceA devA;
deviceB devB;
wayPoint destination,current;

public:
deviceC(wayPoint destination1){
destination=destination1;
devA=deviceA();
devB=deviceB();
}
};

这是错误:

cannot find default constructor to initialize member 'deviceC::destination' in function deviseC::destination(wayPoint)

最佳答案

您的构造函数中需要一个初始化列表,因为类型为 wayPoint 的成员 destinationcurrent 没有默认构造函数。

class deviceC {
public:
deviceC(wayPoint destination1) : destination(destination1) {
devA=deviceA();
devB=deviceB();
}
};

和 IMO,你不需要在构造函数中初始化 devAdevB,只需使用默认构造函数,它们只需调用 operator= 在他们的默认构造函数调用之后。这是我的建议:

class deviceC {
private:
deviceA devA;
deviceB devB;
wayPoint destination, current;
public:
deviceC(const wayPoint& destination1, const wayPoint& current1) : destination(destination1), current(current1) {}
};

关于c++ - 找不到默认构造函数来初始化 cpp 中的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52099137/

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