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, GCC)

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

UNIX используется чаще всего как операционная система для серверов. Большинство утилит не имеет графического (или псевдографического) интерфейса, вызывается ...

Читать

 

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

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



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