Случайно, я сталкиваюсь с ошибкой связывания.
Программа выглядит примерно так:
//a.h
class A
{
int a;
#ifdef AAA
public:
#endif
int getA();
}
//a.cpp
include "a.h"
int A::getA()
{
return a;
}
//test.cpp
#include "a.h"
int main()
{
A a;
a.getA();
return 0;
}
Эти три файла находятся в двух проектах, ah и a.cpp в проекте A, в котором макрос AAA не определен, test.cpp в проекте Test, в котором AAA макрос определен. И проект Test зависит от проекта A.
Тогда я сталкиваюсь с ошибкой ссылки. Я сделал этот тест на Visual Studio 2008.
Так что мой вопрос таков: "Будет ли ссылка сравнивать уровень доступа при поиске символа функции-члена во время соединения?"
По моему предыдущему мнению, уровень доступа действует только при компиляции. Но в этом случае
кажется, что уровень доступа также может влиять на время соединения.