我有一个问题,Visual Studio正在强调代码,我非常自信没有错误(即它编译和运行)。我使用Visual Studios Professional 2013和C ++是语言。这是我的代码:
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并重新开启。关掉我的笔记本电脑然后重新打开它。
答案 0 :(得分:1)
我认为这是旧版Visual Studio的一个错误,而且新版本已经逐步修复了这个问题。
由于您使用的是专业版,因此您可能希望查看是否有可用的Visual Studio 2013更新包;如果没有,您可能希望考虑获得Visual Studio 2015的许可,具体取决于您的学校/公司愿意提供的许可。在最坏的情况下,您可以尝试使用Visual Studio的社区版(这是免费的),但我不知道这是否会违反您的任何功能/许可要求。
答案 1 :(得分:0)
Visual Studio用来为你提供的解析器&#34; red squiggles&#34;不是真正的编译器。所以编译你的代码,看看它是否正常。
仅仅因为你的IDE表明存在问题并不意味着确实存在问题。将IDE提示视为仅仅提示 - 提示。