Friend функция класса выдает ошибку was not declared in this scope

Сегодня долго бился с указанной проблемой при сборке-компиляции проекта на c++ под debian. Решение было в итоге найдено.

Для некоторого класса была объявлена friend-функция. Всё объявление класса я приводить не буду, только структуру класса и объявление самой функции:

Объявление и реализацию класса разместил в файлах Mat3D.h и Mat3D.cpp соответственно.

Далее в другом файле проекта Calc.cpp я пытался вызвать эту функцию, на что получал загадочное сообщение:

Хотя файл Mat3D.h успешно компилировался и был подключен в начале Calc.cpp.

Описывать все идеи и попытки помочь «увидеть» функцию компилятор не стану. Помогло дополнительно объявление функции после класса Mat3D. Вот так:

Надеюсь кому то тоже поможет, ибо решения в сети так и не нашел. Люди писали о схожих проблемах, сетуя на то, что под Windows компилируется нормально, а в Unix такая вот проблема.

Написать комментарий

Мало букафф? Читайте есчо !

Создаём DLL на C++

Декабрь 15, 2015 г.

В предыдущей статье мы создавали DLL, используя Delphi, на языке Pascal. Delphi является коммерческой средой разработки, и стоит огромных денег. Потому ...

Читать

Установка C++ для unix (debian)

Декабрь 19, 2015 г.

Мне пришла мысль кое что "по-кодить" для веб-сервера, начал вспоминать когда то горячо любимый C++. Но сразу столкнулся с тем фактом, что в современной UNIX не установлен компилятор С++ по умолчанию. Устанавливаем Итак, устанавливаем Си на хостинге ...

Читать

 

Комментарии к «Friend функция класса выдает ошибку was not declared in this scope»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: