У меня возникла проблема, когда Visual Studio подчеркивает код, который Im довольно уверенно не в ошибке (т. Е. Компилируется и запускается). Я использую Visual Studios Professional 2013 и C++ - это язык. Вот мои коды:Visual Studio показывает ошибку, которая не существует
WindowMgr.h файл:
class Screen;
class WindowMgr {
public:
void clear(int ind);
private:
std::vector<Screen> screens;
// there's some other stuff in here too
};
screen.h файл:
#include "WindowMgr.h"
class Screen {
friend void WindowMgr::clear(int ind);
private:
std::string privateVal;
// theres some other stuff in here
};
WindowMgr.cpp файл:
#include "Screen.h"
WindowMgr::clear(int ind) {
Screen &s = screens[i];
// this is where the error is:
// VS telling me WindowMgr cant access privateVal
s.privateVal = "";
}
Как я уже сказал, это код компилируется и запускается, как и следовало ожидать, потому что метод clear
является другом Screen
. Тем не менее, VS подчеркивает призыв к privateVal
, говоря мне, что он недоступен. Это в основном просто раздражает, но если у кого-нибудь есть идеи, как исправить, я был бы благодарен.
Вещи, которые я пробовал до сих пор: очистка раствора и перестройка. Закрытие VS и повторное открытие. Отключаем мой ноутбук и снова включаем его снова.
В Visual Studio 2010 у меня была IDE, показывающая, что красные squiggles в ** комментариях ** даже ... Это время от времени, и да, это ошибка в среде IDE. Иногда может помочь удаление файлов кеша IntelliSense. – MicroVirus
IDE - это просто инструмент. Используйте его руководство, когда это полезно. Игнорируйте это, когда это не так. –