我試圖讓classA設置valuea的成員函數,以便classB的值是什麼。如果這是一個簡單或愚蠢的錯誤,我並不完全瞭解繼承,所以請原諒我。同樣,將轉換功能變爲兩個類的朋友會更容易嗎?C++類繼承設置「classA」數據成員等於「ClassB」
class B
{
protected:
int valueb;
public:
B() { }
B(int x) {valueb=x;}
};
class A: public B
{
int valuea;
public:
A():B() {}
A(int x):B(x) {valuea=x;}
void convert(B x)
{
valuea = x.valueb;
}
int getValue() {return valuea;}
};
int main()
{
A a(1);
B b(2);
a.convert(b);
cout << a.getValue() << endl;
}
什麼問題訪問
x.valueb
? – OMGtechy由於受到保護,因此'class A'不能從參數中訪問'valueb'。但是'A'已經是'B',所以'valuea = B :: valueb;'有效。我不知道如果這符合你的意圖。看到一個工作示例:http://ideone.com/NiQQAF –