如何在c ++中从get函数返回多个值

时间:2014-06-05 13:47:45

标签: c++ function class get return

我基本上在私有类中传递两个参数,我试图在我的main函数中访问这两个参数。由于我将这两个参数设为私有,因此我使用get和set函数来访问这些参数,但是我无法从get函数返回两个值。请帮我。最后一篇帖子提出了同样的问题,但这一次被要求提出面向对象的概念。

class FirstClass{
  public:
    void setName(int x,int y){
        a = x;
        b = y;
}
    int getName(){
    return a,b;

     }
  private:
    int a,b;
};

3 个答案:

答案 0 :(得分:2)

使用引用:

int getName(int &a1, int &b1) {
    a1 = a;
    b1 = b;
}

或使用两个功能:

int getA() {
    return a;
}

int getB() {
    return b;
}

答案 1 :(得分:0)

accessors / mutators或getter / setter旨在获取/设置一个值。你的代码应该是这样的:

class FirstClass{
  public:
  FirstClass(int x,int y){ //constructor, initialize the values
    a = x;
    b = y;
}
  int getA(){
  return a;
 }

  int getB(){
  return b;
 }

  int setA(const int newVal){ //using const is a good practice
   a=newVal;
 }

  int setB(const int newVal){ //using const is a good practice
   b= newVal;
 }

 // you can use reference/pointer to *obtain* multiple values, although it is rarely used and seems inappropriate in your code
 void getBoth(int& aRef, int& bRef){
   aRef = a;
   bRef = b;
}


  private:
  int a,b;
};

答案 2 :(得分:0)

您可以返回单个值或将参数作为value-result参数(指针或引用)或返回包含参数的结构。最有可能的是,您需要分别只访问ab,所以为什么不创建两个访问者

int getNameA(){
  return a;
}

int getNameB(){
  return b;
}