C 中派生類使用基類成員的問題

2021-09-23 06:00:15 字數 1023 閱讀 6078

在c++中,派生類在定義建構函式時,會呼叫基類建構函式首先完成基類部分的構造:

class derive : public base

...}

若若派生類定義了乙個基類已有的資料成員,則會覆蓋掉基類。在這個構造過程中,之類自身的成員構造可以使用this指標,

this->name = name;
也可以直接使用派生類自己已經定義的變數名進行賦值操作,如:

name = name1;
派生類只能直接訪問基類中public/protected的成員,使用【基類類名::member】的形式:

class derive: public base;
最後,一起看下完整**:

#include using namespace std;

struct base

int getelem()

private:

int elem;};

class derive : public base

int getelem()

string getname()

int getbaseelem()

private:

string name;

int add;};

int main()

{ derive d("child class object", 12, 15);

cout <<"derive name="<< d.getname() << "\nderive elem=" << d.getelem();

cout《下面是執行結果:

$g++ -std=c++11 -o main *.cpp

$main

derive name=child class object

derive elem=27

base elem=15

C 中派生類成員變數和基類成員變數同名問題

1.當派生類存在與基類同名的成員變數時候,派生類的成員會隱藏基類成員,但派生類中存在基類成員的拷貝,要顯示的訪問base date member include using namespace std class base class derive public base int main 2.當存...

C 中派生類基類成員變數成員函式的訪問

首先搞明白一點 類裡面對成員的訪問處理屬於 內部訪問 通過類的例項化物件在訪問其成員屬於 外部訪問 派生類對基類成員的訪問主要有兩種,一種是派生類的新增成員對繼承的基類成員的訪問 內部 另一種是派生類的物件對繼承的基類成員的訪問 外部 1 public型別 可以在外部訪問,也可以在子類中訪問 dem...

C 中派生類之間的賦值對基類的影響

環境 vs2010 include using namespace std class a public a a 0 cout 讀者可以先考慮輸出結果。執行效果截圖 分析 a pa1 c1 a pa2 c2 pa1 pa2 這三句話表示類c2賦值給c1,因為c從a繼承,所以c2賦值給c1後a的屬性發...