Как в конструкторе класса инициализировать поле класса, являющееся объектом и созданное на стеке?

97
22 апреля 2022, 09:10

Как в конструкторе класса инициализировать поле класса, являющееся объектом класса и созданное на стеке? Следующий код вызывает ошибку.

  class A{
    public:
        A(int x, int y){
            this->x = x;
            this->y = y;
        };
    private:
        int x;
        int y;
    };
    
    class B{
    public:
        B(int x, int y){
            A(x, y);
        };
    private:
        A obj;
    };
Answer 1
class B{
public:
    B(int x, int y):obj(x, y)
    {
    };
private:
    A obj;
};

Да, кстати, и конструктор A лучше переписать как

A(int x, int y):x(x),y(y){}
READ ALSO
Алгоритм Флойда,вывод матрицы расстояний

Алгоритм Флойда,вывод матрицы расстояний

Реализовал алгоритм Флойда, но задался вопросом,как сделать помимо вывода матрицы кратчайших путей, ещё и вывод матрицы расстояний, который...

110
Как работают модули из c++20?

Как работают модули из c++20?

Решил таки посмотреть, какие изменения были введены в 20-ом стандарде и одно из первых изменений поставило меня в тупик: модулиЯ долго пытался...

145
не запускается программа на c++

не запускается программа на c++

компилятор выдает ошибки: maincpp:34:21: error: expected ‘;’ before string constant cout « "\n x=" « x « " y=" « y « " a=" « a « " с=" « с « " U=" « U; ^~~~~~~ main

100