Hores написав:У мене все одно не виходить перевантажити оператор
Для початку - ви взагалі не те робите.
У вас чітке завдання:
Hores написав:продемонструвати пізнє зв'язування
Якщо ви перевантажуєте функції (методи, оператори) з різними типами параметрів, то компілятор це бачить і застосовує раннє зв'язування. Єдиний спосіб викликати пізнє (динамічне, часу виконання) зв'язування в C++ - це перевантаження віртуальних функцій, успадкованих від єдиного предка. Тобто вам треба, щоб один з ваших класів успадковувався від іншого, або ж вони обидва успадковувалися від третього (наприклад, абстрактного) класа; і всі оператори обов'язково мусять мати однакову сигнатуру. Ви не можете змусити оператор String String::operator+(String& other) і BigInt BigInt::operator+(BigInt& other) зв'язуватися динамічно, бо вони мають різні сигнатури і компілятор їх розрізнить ще під час компіляції.
Як саме мають ці оператори працювати усередині - питання цікаве, але вам спершу треба розв'язати архітектурне питання: які будуть сигнатури операторів, а вже потім думати про те, як правильно їх реалізовувати. Так, цілком можливо, що неправильні сигнатури унеможливлять реалізацію і доведеться їх перевигадувати; але з різними сигнатурами ви ніколи не виконаєте завдання. А коли ви вигадуватимете спільну сигнатуру, вам доведеться ухвалювати рішення, яким буде тип, що його повертатиме цей оператор, і це підкаже, як саме писати оператори.
Можливо, вам варто потренуватися перевантажувати звичайні функції. Або хоча б перечитати підручник (чи відео переглянути, як ви там зараз навчаєтеся).
ur_naz написав:навіщо цей велосипед не зрозуміло.
Звісно, що не зрозуміло. Я вам уже скільки разів на це відповідав: коли люди навчаються, вони роблять те, що інші вже вміють, саме для того, щоб навчитися. Але ви, схоже, вчитися не вмієте взагалі, інакше б уже зрозуміли.
ur_naz написав:стринги можна і так складати без перезавантаження
І як же, не розкажете? Навіть у стандартного std::string оператор додавання - не повірите - перевантажений, а у цього самописного й поготів.
▼Прихований текст
я зроблю вигляд, що не помітив, що ви не розрізняєте перевантаження і перезавантаження, бо дуже соромно