Я перегружаю функцию оператора присваивания для копирования массива символов в другой массив символов в других объектах. Я могу вызвать перегруженную функцию оператора присваивания, но не используя присваивание.
Не могли бы вы дать мне несколько советов, что я делаю неправильно? Могу ли я использовать два класса, используя оператор присваивания?
Спасибо, Серхио
pTest = myData;//Fails
pTest->operator=(myData);//this works
struct Data {
char sourceName[5] = { 'S','o','l' };
};
class Test {
public:
//virtual void operator=(Data data) = 0;
void operator=(Data data);
void Show();
private:
char nameTest1[10];
};
void Test::operator=(Data data) {
strcpy_s(nameTest1, data.sourceName);
}
void Test::Show() {
cout << nameTest1;
}
int main() {
Test *pTest = new Test();
Data myData;
pTest = myData;//Fails
pTest->operator=(myData);//but this works
}
Ожидаемый результат: массив sourceName из объекта данных назначен массиву nameTest1 в объекте Test.