Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
VegaZ Гость
|
Добавлено: Чт Май 15 2003 16:07 Заголовок сообщения: ?: C++ |
|
|
class Int { private: int integer;
public: friend bool operator==(int int1, const Int& int2); };
bool operator==(int int1, const Int& int2) { if (int1 == int2.integer) return true; else return false; }
MSVC6-7, TC, MWCodeWarrior - все пишут ошибку, мол, нельзя получить доступ к Integer, а мне вот надо перегрузить int==Int. А теперь, уважаемые знатоки, вопрос: в чем ошибка и как вообше можно перегрузить такой оператор? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Борис Гость
|
Добавлено: Чт Май 15 2003 16:55 Заголовок сообщения: Я ж тебе отвечал! Не читаешь ответы? См.: Вопрос по C++ VegaZ - 04-05-2003 02:32 (+) |
|
|
У тебя перегрузка сделана правильно, а неправильно -- отсутствует публичный конструктор Int(). В прошлый вопрос я думал, что ты (как настоящий сишник ) подразумевал, что контруктор само-собой присутствует, но ты повторяешся, и снова без Int().
>>MSVC6-7, TC, MWCodeWarrior - все пишут ошибку, мол, нельзя получить доступ к Integer
Они и пишут, что нет публичного конструктора, а ты все про "==" думаешь. Напиши "public: Int (int x) { integer = x; }", и все будет как надо.
PS. Проверено на MSVC 6.0, gcc |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
VegaZ Гость
|
Добавлено: Пт Май 16 2003 05:06 Заголовок сообщения: Спасибо big!(я начинающий настоящий сишник :)) |
|
|
Спасибо big!(я начинающий настоящий сишник ) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|