C++ 无法访问私有函数 /****项目计算器配置调试的构建**** ****内部生成器用于生成**** g++-O0-g3-Wall-c-fmessage length=0-o src\Calculator.o..\src\Calculator.cpp ..\src\/Calculator.h:在函数'std::ostream&operator
中,如果不是这样,那么这将是一个极好的问题C++ 无法访问私有函数 /****项目计算器配置调试的构建**** ****内部生成器用于生成**** g++-O0-g3-Wall-c-fmessage length=0-o src\Calculator.o..\src\Calculator.cpp ..\src\/Calculator.h:在函数'std::ostream&operator,c++,private-methods,C++,Private Methods,中,如果不是这样,那么这将是一个极好的问题 在类成员列表前面时,private关键字指定 这些成员只能通过成员函数和 同学们。这项规定适用于所有宣布加入欧盟的成员国 下一个访问说明符或类的结尾 无法访问成员函数,因为您试图从类外部访问它。如上所述,private关键字用于防止出现这种情况 如果确实需要从类外部进行访问,则需要使用public关键字将其设置为公共方法 在这里查找关于private关键字的信息 看看你的错误,我认为问题在于操作符的重载好吧,如果不是这样的话,那么这将是一个很好的
在类成员列表前面时,private关键字指定 这些成员只能通过成员函数和 同学们。这项规定适用于所有宣布加入欧盟的成员国 下一个访问说明符或类的结尾 无法访问成员函数,因为您试图从类外部访问它。如上所述,private关键字用于防止出现这种情况 如果确实需要从类外部进行访问,则需要使用public关键字将其设置为公共方法 在这里查找关于private关键字的信息
看看你的错误,我认为问题在于操作符的重载好吧,如果不是这样的话,那么这将是一个很好的问题
在类成员列表前面时,private关键字指定 这些成员只能通过成员函数和 同学们。这项规定适用于所有宣布加入欧盟的成员国 下一个访问说明符或类的结尾 无法访问成员函数,因为您试图从类外部访问它。如上所述,private关键字用于防止出现这种情况 如果确实需要从类外部进行访问,则需要使用public关键字将其设置为公共方法 在这里查找关于private关键字的信息
看看您的错误,我认为问题在于运算符的重载您可能希望生成
运算符您可能希望生成运算符为什么要尝试访问私有函数?上面的内容似乎是完全可以预料到的,那么您为什么要尝试访问私有函数呢?上面这句话似乎完全是意料之中的,你站起来是因为你让我笑了,这是真的:)但这还不是一个完整的答案。你能稍微扩展一下你的答案吗?也许可以向@harsha大致解释一下私有/受保护/公共功能之间的区别?然后你就可以继续工作了;)@乔治我甚至想对这个问题投赞成票,但我不得不阻止自己:)你站起来是因为你让我笑了,这是真的:)但这还不是一个完整的答案。你能稍微扩展一下你的答案吗?也许可以向@harsha大致解释一下私有/受保护/公共功能之间的区别?然后你就可以继续工作了;)@乔治我甚至想对这个问题投赞成票,但我不得不阻止自己:)
//**** Build of configuration Debug for project Calculator ****
**** Internal Builder is used for build ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o src\Calculator.o ..\src\Calculator.cpp
..\src\/Calculator.h: In function 'std::ostream& operator<<(std::ostream&, CComplex)':
..\src\/Calculator.h:38:9: error: 'float CComplex::m_imaginary' is private
..\src\Calculator.cpp:79:8: error: within this context
..\src\/Calculator.h:37:9: error: 'float CComplex::m_real' is private
..\src\Calculator.cpp:81:12: error: within this context
..\src\/Calculator.h:38:9: error: 'float CComplex::m_imaginary' is private
..\src\Calculator.cpp:81:31: error: within this context
..\src\/Calculator.h:37:9: error: 'float CComplex::m_real' is private
..\src\Calculator.cpp:85:12: error: within this context
..\src\/Calculator.h:38:9: error: 'float CComplex::m_imaginary' is private
..\src\Calculator.cpp:85:31: error: within this context
Build error occurred, build is stopped
Time consumed: 687 ms.
class CComplex {
...
// It doesn't matter whether this declaration is on a private,
// public or protected section of the class. The friend function
// will always have access to the private data of the class.
friend std::ostream& operator<<(std::ostream&, CComplex);
};