提问者:小点点

如何访问函数中的私有变量[closed]


#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;
}

共2个答案

匿名用户

如何访问函数中的私有变量

您正在尝试访问函数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

如果你补充更多关于你的问题和意图的信息,我相信人们会给你更好的指导。