Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编译器错误:';私人';呈现类内无法访问的变量 P> >我正在做C++入门第五版的练习,现在我正在尝试丰富一个已经被这一章传授的课程。具体来说,对于那些没有这本书的人来说,本章要求你编写一个类,然后慢慢地给它添加一些特性。到目前为止,我的代码执行正确。现在,当我试图应用访问说明符来隐藏实现时,我得到了一个错误。首先,这是我的代码: #include <string> #include <iostream> class Person { friend std::istream& read(std::istream& is, Person& item); friend std::ostream& print(std::ostream& os,const Person& item); public: Person() = default; Person(const std::string &s1, const std::string &s2): name(s1),address(s2) {} std::string ret_name() const {return name;}; std::string ret_address() const {return address;}; private: std::string name; std::string address; }; std::istream& read(std::istream& is, Person& item) { is >> item.name >> item.address; return is; } std::ostream& print(std::ostream& os,const Person& item) { os << item.name << " " << item.address; return os; } #包括 #包括 班主任 { 朋友std::istream&read(std::istream&is,个人和项目); friend std::ostream&print(std::ostream&os、const Person&item); 公众: Person()=默认值; 人员(常量标准::字符串和s1,常量标准::字符串和s2): 姓名(s1)、地址(s2){} std::string ret_name()常量{return name;}; std::string ret_address()常量{return address;}; 私人: std::字符串名; std::字符串地址; }; std::istream&read(std::istream&is、人员和项目) { 是>>item.name>>item.address; 回报是; } 标准::ostream&print(标准::ostream&os、const Person&item) { os_C++_Private_Member - Fatal编程技术网 >item.name>>item.address; 回报是; } 标准::ostream&print(标准::ostream&os、const Person&item) { os,c++,private,member,C++,Private,Member" /> >item.name>>item.address; 回报是; } 标准::ostream&print(标准::ostream&os、const Person&item) { os,c++,private,member,C++,Private,Member" />

编译器错误:';私人';呈现类内无法访问的变量 P> >我正在做C++入门第五版的练习,现在我正在尝试丰富一个已经被这一章传授的课程。具体来说,对于那些没有这本书的人来说,本章要求你编写一个类,然后慢慢地给它添加一些特性。到目前为止,我的代码执行正确。现在,当我试图应用访问说明符来隐藏实现时,我得到了一个错误。首先,这是我的代码: #include <string> #include <iostream> class Person { friend std::istream& read(std::istream& is, Person& item); friend std::ostream& print(std::ostream& os,const Person& item); public: Person() = default; Person(const std::string &s1, const std::string &s2): name(s1),address(s2) {} std::string ret_name() const {return name;}; std::string ret_address() const {return address;}; private: std::string name; std::string address; }; std::istream& read(std::istream& is, Person& item) { is >> item.name >> item.address; return is; } std::ostream& print(std::ostream& os,const Person& item) { os << item.name << " " << item.address; return os; } #包括 #包括 班主任 { 朋友std::istream&read(std::istream&is,个人和项目); friend std::ostream&print(std::ostream&os、const Person&item); 公众: Person()=默认值; 人员(常量标准::字符串和s1,常量标准::字符串和s2): 姓名(s1)、地址(s2){} std::string ret_name()常量{return name;}; std::string ret_address()常量{return address;}; 私人: std::字符串名; std::字符串地址; }; std::istream&read(std::istream&is、人员和项目) { 是>>item.name>>item.address; 回报是; } 标准::ostream&print(标准::ostream&os、const Person&item) { os

编译器错误:';私人';呈现类内无法访问的变量 P> >我正在做C++入门第五版的练习,现在我正在尝试丰富一个已经被这一章传授的课程。具体来说,对于那些没有这本书的人来说,本章要求你编写一个类,然后慢慢地给它添加一些特性。到目前为止,我的代码执行正确。现在,当我试图应用访问说明符来隐藏实现时,我得到了一个错误。首先,这是我的代码: #include <string> #include <iostream> class Person { friend std::istream& read(std::istream& is, Person& item); friend std::ostream& print(std::ostream& os,const Person& item); public: Person() = default; Person(const std::string &s1, const std::string &s2): name(s1),address(s2) {} std::string ret_name() const {return name;}; std::string ret_address() const {return address;}; private: std::string name; std::string address; }; std::istream& read(std::istream& is, Person& item) { is >> item.name >> item.address; return is; } std::ostream& print(std::ostream& os,const Person& item) { os << item.name << " " << item.address; return os; } #包括 #包括 班主任 { 朋友std::istream&read(std::istream&is,个人和项目); friend std::ostream&print(std::ostream&os、const Person&item); 公众: Person()=默认值; 人员(常量标准::字符串和s1,常量标准::字符串和s2): 姓名(s1)、地址(s2){} std::string ret_name()常量{return name;}; std::string ret_address()常量{return address;}; 私人: std::字符串名; std::字符串地址; }; std::istream&read(std::istream&is、人员和项目) { 是>>item.name>>item.address; 回报是; } 标准::ostream&print(标准::ostream&os、const Person&item) { os,c++,private,member,C++,Private,Member,我看不出类定义有任何问题。错误的原因可能是其他代码错误地使用了此定义,或者您的编译器不支持说明符default。请尝试将默认构造函数替换为 Person() {} 重新编译代码。缩进很好。将制表符替换为空格。您将这两个方法声明为friend。因此这两个方法只能访问类外的私有变量!当我在ideone()上尝试此操作时BTW:没有错误出现。BuTW:声明 Retry函数返回“代码> const STD::String和< /Cord>是复制粘贴,还是重新键入代码?TyPOS有一个很好的在重新键入时

我看不出类定义有任何问题。错误的原因可能是其他代码错误地使用了此定义,或者您的编译器不支持说明符
default
。请尝试将默认构造函数替换为

Person() {}

重新编译代码。

缩进很好。将制表符替换为空格。您将这两个方法声明为friend。因此这两个方法只能访问类外的私有变量!当我在ideone()上尝试此操作时BTW:没有错误出现。BuTW:声明<代码> Retry函数返回“代码> const STD::String和< /Cord>是复制粘贴,还是重新键入代码?TyPOS有一个很好的在重新键入时消失的能力。它是整个代码吗?为我正确编译。我必须确保编译器使用C++。11通过指定-std=c++11,因为
=default
。除此之外,它还能工作。