Передача объекта из другого класса в конструктор другого в C ++? - PullRequest
0 голосов
/ 04 октября 2018

У меня есть 2 класса - во втором я хочу передать объект класса CAdress и через его explicit constrcutor назначить члену ar из класса CStudent соответствующие значения?Я хотел бы спросить, как я могу это сделать?Заранее спасибо!

class CAdress {
    string street;
    string postal;
    string city;
public:
    CAdress() {
        street = "Studentska #1";
        postal = "9010";
        city = "Varna";
    };
    CAdress(string st, string pos, string ct) {
        street = st;
        postal = pos;
        city = ct;
    }
};



  class CStudent : public CPerson2 {
        string fn;
        CAdress adr;
    public:
        CStudent() {
            fn = "12131547";
        }
        CStudent(string nm, CAdress add, string egnn) {
            name = nm;
            //how to give values to the adress?
            //add = ?
            egn = egnn;

        }

    };

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Более эффективно сделать это следующим образом

CStudent (const string& nm, const CAdress& add, const string& egnn) :
     name (nm),
     adr (add),
     egn (egnn) {}

Для справки прочитайте https://en.cppreference.com/w/cpp/language/initializer_list.

0 голосов
/ 04 октября 2018

Вы можете создать конструктор копирования и напрямую скопировать значение.https://www.geeksforgeeks.org/copy-constructor-in-cpp/. По умолчанию компилятор предоставляет один, но он делает только поверхностное копирование.Так что лучше иногда его создавать.

    CStudent(string nm, CAdress add, string egnn) {
        name = nm;
        adr = add;
        egn = egnn;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...