2014-06-05 29 views
-2

我基本上是傳遞兩個參數在私有類,我想在我的主要功能來訪問這兩個參數返回多個值。由於我將這兩個參數設置爲私有,我使用get和set函數來訪問這些參數,但我無法從get函數返回兩個值。請幫幫我。最後一篇文章提出了類似的問題,但這次它被要求提供面向對象的概念。如何從get函數在C++中

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

    } 
    private: 
    int a,b; 
}; 
+0

需要使用兩個函數在這種情況下獲得兩個返回值。 –

+1

或返回一個包含兩個值的結構。或者通過引用傳入變量並複製到這些變量中。 –

+1

注意:'a,b'是逗號運算符,它在Python中不起任何作用。 – chris

回答

2

要麼使用參考:

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

,或者使用兩個功能:

int getA() { 
    return a; 
} 

int getB() { 
    return b; 
} 
+0

認爲你的意思是說引用。 – chris

+0

確實,我確實......修好了,謝謝。 – wolfPack88

0

存取/存取器或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; 
}; 
+0

所以基本上我必須創建seprate獲取和設置教功能參數? – user3711379

+0

@ user3711379,是的。使用構造函數初始化所有,並獲取/設置訪問和重置單個值。 – Rakib

0

您可以返回一個值或採取參數值,結果參數(指針或引用)或包裝參數返回結構。最可能的是,你將需要訪問只是a或只是b分別畢竟,爲什麼不只是創建兩個訪問

int getNameA(){ 
    return a; 
} 

int getNameB(){ 
    return b; 
}