C++類繼承 繼承后函數(shù)的值實(shí)現(xiàn)詳解
類的繼承會首先尋找基類,若基類未實(shí)現(xiàn),則會尋找派生類的函數(shù)
1. class繼承,函數(shù)不繼承
#include <stdio.h>
class Base
{
public:
Base(){}
~Base(){}
int a;
void setA()
{
a = 1;
}
};
class A:public Base
{
public:
A(){}
~A(){}
void setA()
{
a = 2;
}
};
class B:public Base
{
public:
B(){}
~B(){}
void setA()
{
a = 3;
}
};
int main()
{
A *ax = new A();
B *bx = new B();
Base *aClass = ax;
Base *bClass = bx;
aClass->setA();
bClass->setA();
printf("a value of a %d\n", aClass->a);
printf("a value of b %d\n", bClass->a);
return 0;
}
運(yùn)行結(jié)果:

2. 函數(shù)和Class都繼承
#include <stdio.h>
class Base
{
public:
Base(){}
~Base(){}
int a;
virtual void setA()
{
a = 1;
}
};
class A:public Base
{
public:
A(){}
~A(){}
virtual void setA()
{
a = 2;
}
};
class B:public Base
{
public:
B(){}
~B(){}
virtual void setA()
{
a = 3;
}
};
int main()
{
A *ax = new A();
B *bx = new B();
Base *aClass = ax;
Base *bClass = bx;
aClass->setA();
bClass->setA();
printf("a value of a %d\n", aClass->a);
printf("a value of b %d\n", bClass->a);
return 0;
}
運(yùn)行結(jié)果:注意派生類中可以不寫virtual,最好寫上,以辨別是函數(shù)繼承

若將2中基類的函數(shù)寫為純虛函數(shù),運(yùn)行的結(jié)果一樣,但是如果基類是純虛函數(shù),派生類必須實(shí)現(xiàn)相應(yīng)的函數(shù)。
class Base
{
public:
Base(){}
~Base(){}
int a;
virtual void setA()=0;
};
3. 類A中不有函數(shù),則繼承自基類
class A:public Base
{
public:
A(){}
~A(){}
};
結(jié)果為:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++語言數(shù)據(jù)結(jié)構(gòu) 串的基本操作實(shí)例代碼
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu) 串的基本操作實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-04-04
C++面試基礎(chǔ)之static關(guān)鍵字詳解
這篇文章主要給大家介紹了關(guān)于C++面試基礎(chǔ)之static關(guān)鍵字的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
c++語言中虛函數(shù)實(shí)現(xiàn)多態(tài)的原理詳解
這篇文章主要給大家介紹了關(guān)于c++語言中虛函數(shù)實(shí)現(xiàn)多態(tài)的原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用c++語言具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
QT網(wǎng)絡(luò)編程UDP下C/S架構(gòu)廣播通信(實(shí)例講解)
下面小編就為大家?guī)硪黄猀T網(wǎng)絡(luò)編程UDP下C/S架構(gòu)廣播通信(實(shí)例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
C++編寫DLL動態(tài)鏈接庫的步驟與實(shí)現(xiàn)方法
這篇文章主要介紹了C++編寫DLL動態(tài)鏈接庫的步驟與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了C++導(dǎo)出類文件及生成與調(diào)用DLL動態(tài)連接庫的相關(guān)操作技巧,需要的朋友可以參考下2016-08-08

