⑴ C++中繼承的類怎樣調用基類的私有成員
在基類中定義一個公有成員函數。例如你要調用的私有成員為int a,就在public里定義這樣一個函數:int GetA(){ return a;} 然後在繼承類中調用這個GetA()函數就能達到你的目的了。
⑵ c++ 怎樣訪問類中的私有成員
第一: 用一個typename get(typename n) {return n ;}
第二: 如果同時訪問class的數據成員和非class的數據成員,友元函數 friend 聲明解決
第三: 在這個class內聲明一個friend 類,這個friend類可以訪問當前類的任何數據成員
第一個用的最多。。。
⑶ C++中派生類如何實現對基類私有成員的訪問
派生類不能對基類私有成員進行訪問。
要在派生類中對基類成員進行訪問,可以:
1,在派生類中對基類成員的public屬性進行訪問,以間接訪問基類的私有成員;
2,在基類中將私有成員定義為protected訪問屬性,以在派生類中直接對其進行訪問;
⑷ 如何訪問類中類的私有數據成員
類中的私有成員只能在類的內部訪問,在類的外部是不能訪問的,一般訪問私有成員的方法是在類中定義一個共有的方法來訪問這個私有變數,然後在類的外部調用這個方法,以達到訪問私有成員變數的目的
⑸ 派生類能否直接訪問基類的私有成員若不能,應如何實現
不能
不過可以在基類裡面增加公有的setxx和getxx方法,在子類裡面通過這些getxx和setxx方法間接訪問基類的私有成員變數
⑹ 如何訪問類中的private成員變數
總所周知,類中的private屬性的成員變數在類外是無法訪問的,今天我們探討的就是如何在類外訪問private屬性的成員變數。
我們先來看一個簡單的例子:
class STU
{
public:
STU()
{
x = 5;
y = 10;
}
private:
int x;
int y;
};
int main()
{
STU t;
int*p = (int*)&t + 1;
return 0;
}
通過上面的代碼我們可以知道,方法是把類對象的地址強制轉化為int*類型,因為類對象里存儲的只是成員變數,所以通過對指針的操作可以訪問到private類型的成員變數。
接下來還有一個例子:
class STU
{
public:
STU()
{
c = 'f';
y = 10;
}
private:
char c;
int y;
};
int main()
{
STU t;
int*p = (int*)((char*)&t + 4);
cout << *p << endl;
return 0;
}
這段代碼中最重要的就是int*p = (int*)((char*)&t + 4);
因為第一個數據是char類型的,所以要把對象的地址轉化為char*型,對象中存在兩種類型的數據,需要考慮內存對齊,所以當要訪問下一個int型變數的時候,指針需要加4,而不是加1。最後要取到int型的變數,還是要把地址強轉為int *。
⑺ 在派生類中能否直接訪問基類中的私有成員
不可以,派生類可以訪問protected和public成員,private成員只有該類自身及友元類可以訪問
⑻ 派生類可以調用基類的私有成員嗎
您好,我來為您解答:
派生類不能對基類私有成員進行訪問。
要在派生類中對基類成員進行訪問,可以:
1,在派生類中對基類成員的public屬性進行訪問,以間接訪問基類的私有成員;
2,在基類中將私有成員定義為protected訪問屬性,以在派生類中直接對其進行訪問;
希望我的回答對你有幫助。
⑼ 派生類可以調用基類的私有成員嗎
派生類不能對基類私有成員進行訪問。
⑽ 關於派生類訪問基類私有成員的問題
基類private的成員是不能夠在派生類中被訪問到的。你可以這樣解決:一種方法是把基類中你想在派生類訪問的改成protected訪問許可權。比如:class yuan
{protected:
double r;
};現在你可以在派生類訪問r了。
另一種方法是在基類中添加一個成員函數來獲取這個成員變數的值。class yuan
{
double r; public:double GetValueR(){return r;}
};現在你可以在派生類調用GetValueR來獲取R值。但是注意GetValueR()這個函數的訪問許可權必須是public或者protected,如果它本身也是private那麼就跟r一樣,在派生類是無法訪問的了。