访问类的私有成员

时间:2013-09-24 14:11:02

标签: c++

我是新手,我创建了一个新类来跟踪帐户的不同细节但是我被告知我的班级成员应该是私有的并且使用getter和setter函数。我看了很多例子,但我似乎无法弄清楚如何从我的主程序访问私有成员。我希望用户输入帐户的不同参数,如果我将成员公开,它可以正常工作,如何添加getter和setter。我的班级的私人成员和主要的东西是我需要的所有其他东西,我试图让它工作,但我真的迷失了。我使用向量,因为一旦我得到它工作,我会写一个循环来获取多个帐户的数据,但现在我只是想获取存储的输入

class account

{  public            
       friend void getter(int x);

   private:
       int a;
       char b;
       int c;
       int d;
};

using namespace std;

void  getter (int x)
{

}

int main()
{
  vector <account> data1 (0);
  account temp;

  cin>>temp.a>>temp.b>>temp.c>>temp.d;
  data1.push_back(temp);

  return 0;
}

2 个答案:

答案 0 :(得分:4)

你应该有一个朋友操作员重载:

class account
{
    friend std::istream& operator>> (std::istream &, account &);
public:
    // ...
};

std::istream& operator>> (std::istream& is, account& ac)
{
    return is >> ac.a >> ac.b >> ac.c >> ac.d;
}

int main()
{
    account temp;

    std::cin >> temp;
}

答案 1 :(得分:1)

以下是获取/设置方法的示例:

class account

{  public            
       int getA() const { return a; }
       void setA(int new_value) { a = new_value; }
       int getB() const { return b; }
       void setB(int new_value) { b = new_value; }
       int getC() const { return c; }
       void setC(int new_value) { c = new_value; }
       int getD() const { return d; }
       void setD(int new_value) { d = new_value; }

   private:
       int a;
       char b;
       int c;
       int d;
};

从主要使用:

int main()
{
  vector <account> data1 (0);
  account temp;
  int a,b,c,d;

  cin >> a >> b >> c >> d;
  temp.setA(a);
  temp.setB(b);
  temp.setC(c);
  temp.setD(d);
  data1.push_back(temp);

  return 0;
}

注意:在这种情况下获取/设置方法是否是个好主意是另一个问题。