ред на операции при копиране на обект в обект и copy-elision
Здравейте,
какъв е редът на операциите тук, след като не сме казали предварително Vehicle v;
Кога се създава обекта v ?
= означава копиране на създадения обект в дясно върху обекта от ляво, но понеже в случая е и инициализация, не се ли включва copy-elision-a и директно да се създаде v със стойностите в дясно, в случая само с полето 250 ?
Vehicle v = Airplane(250, 10000, 0);
Поздрави!
struct Vehicle {
public:      double speed;
    Vehicle() : speed(0) {}
};
class Airplane : public Vehicle {
public:     double speed;      double altitude;      double heading;
    Airplane(double speed, double altitude, double heading)
        : speed(speed), altitude(altitude), heading(heading) {}
};
int main() {
    Vehicle v = Airplane(250, 10000, 0);    std::cout << v.speed << std::endl;
//...