#include <iostream>
using namespace std;
class Test{
public:
int kk(int b){
return a=b+5;
}
private:
int a;
/*void priv()
{
int a; // How to access a , if this part was not commented
}*/
};
int main()
{
Test kris;
cout<< kris.kk(5)<<endl;
return 0;
}
如何访问函数中的私有变量
您正在尝试访问函数kk()
中的priv()
局部变量,这是不可能的,除非变量a
的可见性在private:
下是公共的或在函数之外(如果是类)(这将使它可被所有成员函数访问)。 粗略地说,你在尝试做某事:
void fun1() {
int a;
}
void fun2() {
std::cout << a;
}
这是不可能的。
您可能需要更多地考虑您的设计和您所实现的目标。
是否希望在类中有一个私有成员来访问函数? 然后将变量“a”声明为类中的私有成员,并在函数中使用this.a
。 如果希望子类也能够访问您的私有成员,请将变量设置为protected而不是private。
如果您想限制您的类中的任何其他函数访问那个成员,那么我会很好奇您的意图是什么。 如果您试图隐藏实现,您可能需要研究Pimpl技术。 但是,它也有一个非常具体的用例(除此之外,您还可以使用它向开发人员隐藏实现)。 https://en.cppreference.com/W/cpp/language/pimpl[pimpl编程技术]1
如果你补充更多关于你的问题和意图的信息,我相信人们会给你更好的指导。