Reputation: 506
Please help me with this. I was trying to fix this for two hours. This is my code.
class deviceC {
private:
deviceA devA;
deviceB devB;
wayPoint destination,current;
public:
deviceC(wayPoint destination1){
destination=destination1;
devA=deviceA();
devB=deviceB();
}
};
This is the error:
cannot find default constructor to initialize member 'deviceC::destination' in function deviseC::destination(wayPoint)
Upvotes: 1
Views: 1929
Reputation: 172894
You need an initializer list in your constructor, because member destination
and current
with type wayPoint
does not has a default constructor.
class deviceC {
public:
deviceC(wayPoint destination1) : destination(destination1) {
devA=deviceA();
devB=deviceB();
}
};
And IMO, you don't need init the devA
and devB
inside the constructor just with the default constructor, they just call the operator=
after their default constructor called. Here's my suggestion:
class deviceC {
private:
deviceA devA;
deviceB devB;
wayPoint destination, current;
public:
deviceC(const wayPoint& destination1, const wayPoint& current1) : destination(destination1), current(current1) {}
};
Upvotes: 3
Reputation: 18242
Missed a bracket.
class deviceC{
private : deviceA devA;
deviceB devB;
wayPoint destination,current;
public: deviceC(wayPoint destination1){
destination=destination1;
devA=deviceA();
devB=deviceB();
} // <-- here
};
Upvotes: 1