Intellisense表示错误:成员" Class :: field"是无法访问但它仍然有效?为什么?

时间:2014-12-23 16:44:04

标签: c++ visual-studio-2010 operator-overloading intellisense member

我在main.cpp的单独文件中有一个类,它有重载插入操作符。我的班级写得像这样:

Person.h

#ifndef PERSON_H_INCLUDED
#define PERSON_H_INCLUDED

#include <iostream>

class Person{
        friend std::ostream& operator<<(std::ostream&, const Person&);
    public:
        Person(std::string);
    protected:
        std::string name;
};

#endif

Person.cpp

#include "Person.h"

using namespace std;

Person::Person(string name){
    this->name = name;
}

ostream& operator<<(ostream& out, const Person& person){
    out << "Name\t:" << person.name << "\n";    // Here's intellisense said error.
    return out;
}

person.name Intellisense处说错误。我的观点是:

  • 为什么它说错误但我的代码仍能正常工作并构建正确?
  • 这是一个错误还是我做错了什么?

(我正在使用visual studio 2010)

1 个答案:

答案 0 :(得分:-1)

您的代码应该可以正常工作!

这是一个错误的错误,请尝试干净的构建,如果它仍然存在则忽略它并检查 Visual Studio 更新。