Visual Studio显示不存在的Bug

时间:2016-05-19 20:24:00

标签: c++ visual-studio

我有一个问题,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并重新开启。关掉我的笔记本电脑然后重新打开它。

2 个答案:

答案 0 :(得分:1)

我认为这是旧版Visual Studio的一个错误,而且新版本已经逐步修复了这个问题。

由于您使用的是专业版,因此​​您可能希望查看是否有可用的Visual Studio 2013更新包;如果没有,您可能希望考虑获得Visual Studio 2015的许可,具体取决于您的学校/公司愿意提供的许可。在最坏的情况下,您可以尝试使用Visual Studio的社区版(这是免费的),但我不知道这是否会违反您的任何功能/许可要求。

答案 1 :(得分:0)

Visual Studio用来为你提供的解析器&#34; red squiggles&#34;不是真正的编译器。所以编译你的代码,看看它是否正常。

仅仅因为你的IDE表明存在问题并不意味着确实存在问题。将IDE提示视为仅仅提示 - 提示。