Как я должен написать необходимый конструктор для класса, который включает в себя динамический массив? - PullRequest
0 голосов
/ 07 ноября 2019

Пенсионеры! Я застрял в этой теме и не могу найти способ написать следующие конструкторы (и методы) для обоих классов K1 и K2 :

  • конструктор по умолчанию
  • конструктор копирования и метод перезаписи.
  • правильный оператор перегрузки << для K2 </li>
    class K1 {
    string* p1; // p1 in future should be dynamic array
public:
    K1() : p1(new string) {}; // my version of def. constructor
    ~K1() { delete p1; }; // destructor
    K1(const K1& k) : p1(new string(*k.p1)) {}; // my version of copying constructor
    K1& operator= (const K1& copy) { // rewriting method in my vision
        *p1 = *copy.p1;
        return *this;
    }
}; 

class K2 {
    K1 p1;
    double p2;
public: 
    K2(const string & one, const string & two, const double & price) // mostly stucked here: how can i reforward data from here to K1`s pointer (which is an array)
};
int main() {
    K2 ob1, ob2; // testing code
    const K2* wsk1 = new K2("kawa", "z mlekiem", 4.50);
    const K2 ob3(*wsk1);
    delete wsk1;
    K2* wsk2 = new K2(ob3);
    ob2 = *wsk2;
    cout << ob3;
    return 0;
}

Заранее спасибо заВаша помощь, ребята!

1 Ответ

0 голосов
/ 07 ноября 2019

добавить конструктор для K1

K1(const string& s) : p1(new string(s)){};

, затем в K2

K2(const string & one, const string & two, const double & price) : p1(one){}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...