我基本上在私有类中传递两个参数,我试图在我的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;
};
答案 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参数(指针或引用)或返回包含参数的结构。最有可能的是,您需要分别只访问a
或b
,所以为什么不创建两个访问者
int getNameA(){
return a;
}
int getNameB(){
return b;
}