UE4 C 三種繼承方式

2021-09-26 23:59:33 字數 2031 閱讀 2177

[ue4]c++三種繼承方式

(1) 公有繼承(public)

公有繼承的特點是基類的公有成員和保護成員作為派生類的成員時,它們都保持原有的狀態,而基類的私有成員仍然是私有的,不能被這個派生類的子類所訪問。

(2)私有繼承(private)

私有繼承的特點是基類的公有成員和保護成員都作為派生類的私有成員,並且不能被這個派生類的子類所訪問。

(3)保護繼承(protected)

保護繼承的特點是基類的所有公有成員和保護成員都成為派生類的保護成員,並且只能被它的派生類成員函式或友元訪問,基類的私有成員仍然是私有的。

private能夠對外部和子類保密,即除了成員所在的類本身可以訪問之外,別的都不能直接訪問。protected能夠對外部保密,但允許子類直接訪問這些成員。public、private和protected對成員資料或成員函式的保護程度

總結:(1). public繼承是乙個介面繼承,保持is-a原則,每個父類可用的成員對子類也可用, 因為每個子類物件也都是乙個父類物件。

(2). 基類的private成員 在派生類中是不能被訪問的, 如果基類成員 不想在類外直接被訪問, 但需要 在派生類中能訪問, 就定義為protected。 可以看出保護成員 限定符是因繼承才出現的。

(3). protected/private繼承是乙個實現繼承, 基類的部分成員 並非完全成為子類介面 的一部分, 是 has-a 的關係原則, 所以非特殊情況下不會使用這兩種繼承關係, 在絕大多數的場景下使用的 都是公有繼承。 私有繼承以為這is-implemented-in-terms-of(是根據……實現的) 。 通常比組合(composition) 更低階, 但當乙個派生類需要訪問 基類保護成員 或需要重定義基類的虛函式時它就是合理的。

(4). 不管是哪種繼承方式, 在派生類內部都可以訪問基類的公有成員和保護成員 , 基類的私有成員存在但是在子類中不可見( 不能訪問) 。

(5). 使用關鍵字class時預設的繼承方式是private, 使用struct時預設的繼承方式是public, 不過最好顯式的寫出繼承方式。

(6). 在實際運用中一般使用都是public繼承, 極少場景下才會使用protetced/private繼承。

在struct繼承中,如果沒有顯式給出繼承型別,則預設的為public繼承;在class繼承中,如果沒有顯式給出繼承型別,則預設的為private繼承;

littlegirl.h

#pragma once

#include "human.h"

class littlegirl :

public human

;

littlegirl.cpp

#include "stdafx.h"

#include "littlegirl.h"

/* 可以這樣呼叫父級的建構函式。沒有註明繼承方式,預設是private繼承,相當於「private human(name)」

另外2種繼承方式是:「public human(name)」,「protected human(name)」

如果是多繼承,則是:「public human(name),public 其它基類(name)」,繼承的數量不限,用「,」分割就可以了。

*/littlegirl::littlegirl(string name):human(name)

littlegirl::littlegirl()

littlegirl::~littlegirl()

human.h

#pragma once

#includeusing namespace std;

class human

;

human.cpp

#include "stdafx.h"

#include "human.h"

human::human(string name)

human::human()

human::~human()

UE4 C 建立物件的三種方式

include using namespace std classa a int main 第一種和第二種沒什麼區別,乙個隱式呼叫,乙個顯式呼叫,兩者都是在程序虛擬位址空間中的棧中分配記憶體,而第三種使用了new,在堆中分配了記憶體,而棧中記憶體的分配和釋放是由系統管理,而堆中記憶體的分配和釋放必須...

C 三種繼承方式

公有繼承 public 私有繼承 private 保護繼承 protected 是常用的三種繼承方式。1.公有繼承 public 2.私有繼承 private 私有繼承的特點是基類的公有成員和保護成員都作為派生類的私有成員,並且不能被這個派生類的子類所訪問。3.保護繼承 protected 保護繼承...

C 三種繼承方式

繼承是使 可以復用的重要手段,也是物件導向程式設計的核心思想之一。簡單的說,繼承是指乙個物件直接使用另一物件的屬性和方法。繼承呈現了 物件導向程式設 計的層次結構,體現了 由簡單到複雜的認知過程。c 中的繼承關係就好比現實生活中的父子關係,繼承一筆財產比白手起家要容易得多,原始類稱為基類,繼承類稱為...