1樓:匿名使用者
先宣告派生類,將成員函式引數設為派生類的引用#include
using namespace std;
class b;
class a;
int main()
不知道你是不是要問這個
2樓:匿名使用者
那還放在基類搞什麼,不如弄成虛擬函式。
c++中派生類如何使用基類中的資料成員
3樓:匿名使用者
如果你是派生類例項,這個結果是正確的,派生後會覆蓋基類成員。
4樓:匿名使用者
派生類中繼承了基類的資料成員,只有基類中的受保護
或者公有資料成員在被進行保護或公有繼承時才能被派生類訪問到。基類的私有成員是不可能被派生類訪問到的。你用get()函式訪問基類中的相同的資料成員,但是派生類既然已經繼承了基類,自然基類的資料成員也繼承了,這時候你訪問的派生類的成員(不是你派生之後又新增的成員)時,實際上訪問的就是基類的成員啊。
當然從實質上來看就是派生類的成員。
c++中怎樣用派生類的成員函式呼叫基類的函式? 5
5樓:
public和protected函式可以直接呼叫。
如果被過載了可以使用 「基類::函式」 這樣的形式呼叫
如果是private就不行了,除非在基類友元自己
6樓:匿名使用者
你是指在派生類成員函式中呼叫基類函式嗎?可以通過基類的類名直接訪問,比如基類a的函式fun(),在派生類b的fun()中使用a::fun()就是呼叫基類的函式了。
c++中派生類如何訪問基類成員變數?
7樓:匿名使用者
t=animal.a;
這句話不行。a是一個普通成員變數,只有對一個具體的物件,才會有.a這種用法。
8樓:匿名使用者
很簡單,fish改成這樣就可以了:
class fish:public animalint t;
void fw()
};因為fish是animal的子類,對於fish的任何一個物件,它也擁有animal的特徵,所以a也是fish的。
9樓:匿名使用者
這裡a是public的可以直接訪問
void fw()
當然為了表明它屬於基類:
可以void fw()
如果是protected的也是這樣做。
如果你把它弄成private的了,可以在基類中定義public的一個相應的gette/setterr函式即可。
如果實在不想這麼做,又想訪問,可以用指標的方法無視許可權任意塗改,當然你要知道你的目的
別弄錯了,因為正常合法是不允許這麼做的,但練習無所謂。
10樓:匿名使用者
問題1:靜態變數可以通過繼承到子類裡,但是你不可能通過子類對x進行第二次初始化,絕對報錯
問題2:你可以在子類裡去修改這個靜態變數,但是在修改這個值之後,即使你去調基類的foo函式,x還是你在子類裡已經修改了的值,因為子類和基類的x其實是同一個,他們是同一塊記憶體。
問題3:在基類裡沒法訪問派生類的x。你可以通過多型的特性,在子類父類裡寫一個虛擬函式來設定x的值,然後通過使用a的指標去呼叫b類裡的方法。
但是對靜態變數而言沒有什麼意義,因為他們是同一個東西,在哪修改都一樣。
11樓:淺淺
c++中派生類對基類成員的訪問形式主要有以下兩種:
1、內部訪問:由派生類中新增成員對基類繼承來的成員的訪問。
2、物件訪問:在派生類外部,通過派生類的物件對從基類繼承來的成員的訪問。
三種繼承方式下,派生類對基類成員的訪問規則。
1、私有繼承的訪問規則
2、公有繼承的訪問規則
3、保護繼承的訪問規則
c++:派生類中重定義基類的成員函式與虛擬函式區別在**?
12樓:匿名使用者
1、c++的虛擬函式主要是為了實現多型。基類定義的虛擬函式,派生類重新定義該函式,這樣基類物件指標呼叫哪一個函式是判斷該基類指標的物件的型別。
2、虛擬函式用virtual關鍵字修飾,同時開啟動態聯編技術,動態聯編只有程式執行時才能確定呼叫的函式,在編譯階段是不知道要呼叫哪一個函式。
13樓:匿名使用者
如果加關鍵字 virtual,則是 override;
如果不加關鍵字 virtual,則跟作用域有關,基類與派生類的成員函式作用域不相同。
c中,基類是抽象類(有純虛擬函式),在派生類(公有繼承)中,能不能呼叫初始化基類物件
能呼叫如果創bai建物件是b b 2,3 那du麼就會執行b int m,int n 0 這個zhi建構函式dao,進而顯式呼叫了基類a的構專造函式a int a 因屬為初始化列表裡寫明瞭a m 構造方式 假如沒有這個a m 語句,那麼就會呼叫a的預設建構函式,但a裡沒有寫a 所以就會報錯 沒有適合...
c執行緒如何執行帶引數的類成員函式
1 在a類中新增一個執行緒方法do fun class a string s 新增一個屬性,可以傳入引數 public string para set 新加執行緒方法 public void do fun 2 傳入引數並呼叫執行緒 a a new a a.para 傳入的字串 thread t ne...
c類的成員函式前加什麼意思,C類的成員函式前加什麼意思
這個和函式引數加地址符的作用是一樣的,用於返值返回的是引用而不是賦值。也就是說,該函式返值會通過地址傳送的方式給到函式呼叫者要求的返回值,這樣可以節省物件賦值造成的記憶體浪費,通常用於返值是大型物件 而不是簡單變數型別 的時候。比如你有個class t,而這個函式的返值是return t 加上地址符...