преобразование типа и классы |
Здравствуйте, гость ( Вход | Регистрация )
преобразование типа и классы |
voipp |
4.4.2010, 23:08
Сообщение
#1
|
Участник Группа: Участник Сообщений: 116 Регистрация: 20.10.2009 Из: Msk Пользователь №: 1166 Спасибо сказали: 0 раз(а) Репутация: 0 |
Значит есть класс CTable от него наследуется CMatrix а от него SLAU.наследование открытое. в CTable определен operator=(const CTable& table). Строчки вида
без ошибок компилируются.А вот строчки вида вводят компилятор в недоумение(операции сложения и умножения выполняются без ошибок).Вот что он пишет: не найден оператор= принимающий правый аргумент типа CMatrixТеперь в недоумении я.Почему это происходит и как это исправить? Сообщение отредактировал voipp - 4.4.2010, 23:19 |
|
|
Iron Bug |
5.4.2010, 21:05
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
да, я тоже стараюсь избегать неявного преобразования типов.
к тому же, тут компилятор иногда может оказать "медвежью услугу": у мелкософта, к примеру, он сам генерит пустые конструкторы и конструкторы копий по умолчанию. а это, на самом деле, потенциальная дыра. я уже один раз напарывалась на это. уж если нужно преобразование, то его нужно указывать явно. а если оно ещё и сложное - то самому прописывать это преобразование, не надеясь на то, что может придумать компилятор. |
|
|
Текстовая версия | Сейчас: 29.11.2024, 17:59 |