|
Модераторы: Daevaorn |
|
AlexZNew |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.1.2010 Репутация: нет Всего: нет |
Добрый день!
Возникает ошибка компоновщика при совместном употреблении перегруженных операторов << и унарный - Вот отрывки из кода: class FixedPoint { public: FixedPoint(std::int16_t num, std::int8_t drob) : m_num(num), m_drob(drob) {} FixedPoint(double num); operator double() const { return 0.01 * m_drob + m_num; } FixedPoint operator-() { return FixedPoint(-m_num, -m_drob); } friend std::ostream& operator<< (std::ostream& out, const FixedPoint& point); }; int main() { FixedPoint a(0.48); std::cout<<a; FixedPoint b = -a; std::cout<<b; //-----все написанное выше собирается и выполняется без ошибок std::cout<<-a; // вызывает ошибку компоновщика - Ошибка LNK2019 ссылка на неразрешенный внешний символ "class std::basic_ostream<char,struct std::char_traits<char>, круглые скобки не помогают } Добавлено через 13 минут и 32 секунды Вопрос решен: в объявлении friend std::ostream& operator<< (std::ostream& out, const FixedPoint& point); в реализации был пропущен const Тема закрыта |
|||
|
||||
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |