繁体   English   中英

Intellisense说错误:无法访问成员“ Class :: field”,但它仍然有效? 为什么?

[英]Intellisense said error: member “Class::field” is inaccessible but it's still works? Why?

我在与main.cpp不同的文件中有一个类,该类包含重载插入运算符。 我的课是这样写的:

#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

人.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)

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

这是一个错误错误,请尝试进行全新构建,如果持久存在则将其忽略,并检查Visual Studio更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM