1樓:物理公司的
複雜系統通常由少數幾個子系統通過一定方式組合而成,被稱為共同模式,具有公共部分的子系統被歸為同一類,c++的繼承就是為了表達共同抽象而設計的語言設施,因此,派生類必須包含基類的實現才能屬於同一類。你可以定義為private,然後又沒有介面這樣就不能訪問了,不過還是繼承了。
c++試題 如果派生類只有乙個基類,這種繼承稱為()
2樓:網友
這種繼承叫做單繼承。
3樓:沒有妳我怎庅辦
這種題有什麼考點呢?
c++中如果派生類對基類繼承過來的函式功能不需要擴充可不可不定義而直接呼叫?
4樓:網友
如果基類的函式有定義,派生類可以不用定義直接呼叫,如果基類的函式沒有定義(純虛擬函式)則派生類在呼叫前必須定義該函式的函式體。
5樓:網友
關鍵看那個函式是不是 純虛擬函式(也就是 基礎類 只是宣告沒有定義)。如果不是,且功能已經足夠了你可以直接呼叫。
6樓:網友
基類的功能都有。
bai,不需要定du義就可以呼叫用zhi基類的函式,如dao果重新定義了,則預設呼叫的是專新的函式。
屬,但是你還可以用:符號指定呼叫基類的函式。當然要注意基類的是private 、protected、public ,稍微還有點區別。
7樓:巴扎嘿
c++中如果派生類對基類繼承過來的函式功能不需要擴充的話,可以直接使用基類中的函式。因版為派生類中繼權承了基類的屬性和方法。
如果基類中的實現和派生類中的方法實現不同的話,可以用虛擬函式。派生類繼承了基類虛擬函式的介面和預設實現,但是它可以對這個虛擬函式重新實現。
一般來說派生類的行為不可能和基類完全一樣,成員和函式都會有擴充。
8樓:網友
哈,我bai拿effective c++上的話來說吧du。有乙個基類zhi
daoperson,和兩個派生類student和teacher,person裡面可以。
定義一些函式比版方說基本的功能權eat(),study(),student和teacher都可以繼承這兩個函式(因為通用),不需要重新定義,但是新的派生類可以派生出自己獨特的行為,比方說student可以有submit()提交作業功能,teacher有check()檢查作業功能,這就可以分開定義了。
所以派生類可以說是完善而且獨立的,基類定義的功能子類不用重複定義,但是虛擬函式是要重新定義的,純虛擬函式在派生類必須需要定義。
c++為何無法用指標引用這些派生類成員函式
9樓:網友
**沒有問題,我將你的**在vs2010下建立了個測試專案,僅僅把你的虛擬函式名改成輸出的,完全沒有問題,我認為是編譯器差異造成的,。
c++中繼承基類和派生類的關係,比如繼承方式,子類是不是至少擁有全部父類成員函式
10樓:網友
子類是擁有全部類的成員函式,但是訪問的許可權就看父類的訪問修飾符(public,protected,private),子類要想訪問父類的資料成員,該資料的訪問許可權必須是public或者protected,public訪問 許可權最低,protected只能是自身類的成員函式,友元類與子類訪問,private只能是能是自身類與友元類成員函式的訪問。
11樓:網友
是的,不過如果是私有繼承的話,那麼子類不能呼叫父類的成員函式。
12樓:歡釋心
子類肯定擁有全部基類成員。
注意:擁有並不等於可以訪問。
比如:子類繼承了父類的私有成員,但是卻永遠無法進行直接訪問。
13樓:網友
子類有父類全部屬性。
子類可以訪問父類的公有和保護函式和屬性,不能訪問父類的私有函式和屬性。
繼承還有很多學問,先搞清楚這些基本的東西吧。
14樓:網友
私有繼承:
父類私有的在子類不擁有。訪問可以通過父類的public型別函式。
父類公有的和保護的成為子類私有的。
關於保護指的是類以外不能訪問、)
公有繼承:父類私有的在子類不擁有。訪問也可以通過父類的public型別函式。
父類公有的依舊是子類公有的。父類保護的成為子類公有的。
保護繼承:父類私有的在子類不擁有。訪問也可以通過父類的public型別函式。
父類公有的成為子類保護的。父類保護的依舊是子類保護的。
c++中有哪幾種派生方式?每種方式的派生類對基類成員的繼承和訪問控制屬性是什麼
15樓:匿名使用者
繼承方式與訪問控制抄。
防空限定符 防控屬性 基類 子類 外部。
友元public 共有成員 ok ok ok ok
pretected 保護成員 ok ok no ok
private 私有成員 ok no no ok
通過子類訪問其基類中定義的成員時也需要考慮繼承方式對訪問控制的影響。
基類 在公有子類中 在保護子類中 在私有子類中。
公有成員 公有成員 保護成員 私有成員。
保護成員 保護成員 保護成員 私有成員。
私有成員 私有成員 私有成員 私有成員。
16樓:劉廣鑫
public,private,protected派生public派生,在派du
生類zhi裡和外面dao都可以直接呼叫回基類的公有部分答protected保護派生,在派生類裡可以直接呼叫,但是在派生外面不可以呼叫。
private私有派生,在派生類裡和外面都不可以直接呼叫,但可以用函式間接呼叫,
17樓:昏黃的光線
同學 你東大軟信的吧~
c++問題 派生類只繼承基類的公有成員和保護成員。 這句話怎麼是錯的呢? 私有成員不是不能被繼承嗎
18樓:萌猛學長
是的。c++是c語言的繼承,它既可以進行c語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的物件導向的程式設計。c++擅長物件導向程式設計的同時,還可以進行基於過程的程式設計,因而c++就適應的問題規模而論,大小由之。
c++不僅擁有計算機高效執行的實用性特徵,同時還致力於提高大規模程式的程式設計質量與程式設計語言的問題描述能力。
世界上第一種計算機高階語言是誕生於1954年的fortran語言。之後出現了多種計算機高階語言。1970年,at&t的bell實驗室的和共同發明了c語言。
研製c語言的初衷是用它編寫unix系統程式,因此,它實際上是unix的「副產品」。它充分結合了組合語言和高階語言的優點,高效而靈活,又容易移植。
1971年,瑞士聯邦技術學院教授發明了pascal語言。pascal語言語法嚴謹,層次分明,程式易寫,具有很強的可讀性,是第乙個結構化的程式語言。
19樓:囚籠山人六
不是不可繼承,是派生類不可用呼叫基類的私有成員,呼叫和繼承不是乙個意思。繼承父類其實父類裡所有的函式變數都是在工作的,只是不可讓子類去隨便改動和訪問。
20樓:網友
沒錯啊基類是指左邊,既「被繼承「的類 派生類是指右邊。
你的教科書圖畫得沒錯。
21樓:網友
私有成員不是不能繼承,是不能直接繼承,需要借用別的函式。
c++中派生類如何使用基類中的資料成員
22樓:網友
如果你是派生類例項,這個結果是正確的,派生後會覆蓋基類成員。
23樓:網友
派生類中繼承了基類的資料成員,只有基類中的受保護。
或者公有資料成員在被進行保護或公有繼承時才能被派生類訪問到。基類的私有成員是不可能被派生類訪問到的。你用get()函式訪問基類中的相同的資料成員,但是派生類既然已經繼承了基類,自然基類的資料成員也繼承了,這時候你訪問的派生類的成員(不是你派生之後又新增的成員)時,實際上訪問的就是基類的成員啊。
當然從實質上來看就是派生類的成員。
關於c++繼承中派生類與基類的建構函式的問題。
24樓:牛頓一餐一頓牛
建構函式過載的3個條件:具有相同的名字;引數個數不同;引數型別不同。
所以第2個建構函式不可能實現。
當然如果derived中新增的資料成員不為int型,則可以用以下方式設計建構函式。
#include
using namespace std;
class basic
basic(int x)
int geta()
class derived : public basicderived(int x):basic(x)derived(double y):
basic()derived(int x, double y):basic(x)double getb()
int main()
25樓:
函式過載要求:1.函式名相同;2.引數型別或者個數不同。
成員函式過載也是一樣,故第二種情況和第三種情況不是過載,所以只能存在一種情況,如下:
class basic
basic(int x)
class derived:public basic
乙個是預設建構函式,並且其呼叫基類的預設建構函式。
derived(int m):basic(m) //乙個是預設建構函式,但是呼叫基類中有參的那個建構函式。
derived(int m):basic(),b(m){}//乙個有參建構函式,並呼叫基類的預設建構函式。
derived(int m, int n):basic(m), b(n){}//乙個有參建構函式,並呼叫基類的有參建構函式};
26樓:網友
在派生類建構函式的初始化列表中顯式呼叫基類的建構函式即可例如第一種情況。
derived() basic() 第二種情況:
derived() basic(10) {以下類推即可。
27樓:
乙個是預設建構函式,並且其呼叫基類的預設建構函式;
乙個是預設建構函式,但是呼叫基類中有參的那個建構函式;首先有兩個預設建構函式是不可能實現 的。
C類的公有繼承,基類的私有成員在派生類中不可見或不可訪問,這個不可見或不可訪問是什麼意思
外部成員無法訪問內部私有成員。從物理上講是複製過來了,在記憶體中確實有複製。但是從程式上看是被遮蔽了,不能直接呼叫。簡單的表達一下,父母跟子女。基類就是父母,子女就是派生類。基類的私有成員就好比是父母的私房錢,子女能夠繼承父母的樣貌 即公有成員 但是子女沒法使用父母的私房錢也不能知道有多少私房錢 即...
如何在C中,在類裡呼叫另外類的方法
把a類你有引用的方法加static public class a public class b 拓展資料 c 是一個物件導向的程式語言。這種程式設計模式關注的是物件的行為和屬性。比如貓抓老鼠這個例子中 貓和老鼠都是物件,用兩個類表示 貓類cat,老鼠類mouse。貓表現出了兩種行為 聽 老鼠的叫聲 ...
如何在c中呼叫另外專案的類,如何在c 中呼叫另外一個專案的類?
在a專案上新增引用,比如你想呼叫b專案的一些類或方法,在a專案上右鍵 新增引內用 add reference 選擇本地專案,找到容b專案後,新增引用.程式中使用using b 這樣就可以使用b中的類和方法了.祝你成功 c 如何呼叫另外一個專案的類 在a專案上新增引用,比如你想呼叫b專案的一些類或方法...