我有T级
class T
{
public:
.
.
private:
void foo();
}
void T::foo()
{
.. foo body
}
当我尝试编译时我得到了
错误:void T::foo()
是私有的
我应该如何实现私有方法?
答案 0 :(得分:1)
私有方法只能在类中使用。
私人,受保护和公众之间的区别? https://isocpp.org/wiki/faq/basics-of-inheritance#access-rules
如果你想在外面使用它,那么你必须公开它。这是一个关于私人和公共成员的简单例子
#include <iostream>
class T
{
void bar()
{
cout << "Private! Can only be accessed within the class";
}
public:
void foo()
{
std::cout << "hello world!";
}
};
int main() {
// your code goes here
T testT;
//testT.bar(); <--uncomment this and you will get the error: 'void T::bar()' is private
testT.foo();
return 0;
}
您可能还想了解朋友的概念。如果函数被声明为T类的朋友,它可以访问私有foo()。