欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++的繼承法則詳解

 更新時(shí)間:2024年11月18日 10:29:59   作者:成工小白  
本文詳細(xì)介紹了C++中的繼承機(jī)制,包括繼承的概念、定義、使用方法、訪問(wèn)限定符、賦值兼容轉(zhuǎn)換、作用域、默認(rèn)成員函數(shù)、友元關(guān)系、靜態(tài)成員以及單繼承、多繼承和菱形繼承,感興趣的朋友跟隨小編一起看看吧

一、繼承的概念和定義

1、概念

繼承(inheritance)機(jī)制是面向?qū)ο蟪绦蛟O(shè)計(jì)使代碼可以復(fù)用的最重要的手段,它允許程序員在保持原有類(lèi)特性的基礎(chǔ)上進(jìn)行擴(kuò)展,增加功能,這樣產(chǎn)生新的類(lèi),稱派生類(lèi)。繼承呈現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計(jì)的層次結(jié)構(gòu),體現(xiàn)了由簡(jiǎn)單到復(fù)雜的認(rèn)知過(guò)程。以前我們接觸的復(fù)用都是函數(shù)復(fù)用,繼承是類(lèi)設(shè)計(jì)層次的復(fù)用

2、使用

#include <iostream>
using namespace std;
class Person
{
};
class Student : public Person
{
};
class Teacher : public Person
{
};
int main()
{
}

作用:是將共有的數(shù)據(jù)和方法提取出來(lái)放到父類(lèi),自己定義自動(dòng)獨(dú)有的成員,使其減少代碼冗余。

3、定義格式

上述中:

Person:稱為父類(lèi)或者基類(lèi)。

Student / Teacher:稱為子類(lèi)或者派生類(lèi)。

 語(yǔ)法為:子類(lèi)聲明 :繼承方式 繼承類(lèi)名

4、繼承關(guān)系和訪問(wèn)限定符

繼承方式有三種:

訪問(wèn)限定符也有三種:

注意兩者的區(qū)別與聯(lián)系。

5、繼承父類(lèi)時(shí)成員訪問(wèn)方式的變化(繼承方式與訪問(wèn)方式的聯(lián)系)

類(lèi)成員 / 繼承方式
public 繼承
protected 繼承
private 繼承
基類(lèi)的 public 成員
派生類(lèi)的public成員
派生類(lèi)的protected 成員
派生類(lèi)的private 成員
基類(lèi)的 protected 成員
派生類(lèi)的protected 成員
派生類(lèi)的protected 成員
派生類(lèi)的private 成員
基類(lèi)的 private
在派生類(lèi)中不可見(jiàn)
在派生類(lèi)中不可見(jiàn)
在派生類(lèi)中不可見(jiàn)

注意:不可見(jiàn)不是不存在,存在但是用不了,即使是自己的成員函數(shù)也不可以訪問(wèn),只有調(diào)用父類(lèi)的成員函數(shù)間接訪問(wèn)。

6、總結(jié)

(1)、基類(lèi)private成員在派生類(lèi)中無(wú)論以什么方式繼承都是不可見(jiàn)的。這里的不可見(jiàn)是指基類(lèi)的私
有成員還是被繼承到了派生類(lèi)對(duì)象中,但是語(yǔ)法上限制派生類(lèi)對(duì)象不管在類(lèi)里面還是類(lèi)外面
都不能去訪問(wèn)它。
(2)、基類(lèi)private成員在派生類(lèi)中是不能被訪問(wèn),如果基類(lèi)成員不想在類(lèi)外直接被訪問(wèn),但需要在
派生類(lèi)中能訪問(wèn),就定義為protected。可以看出保護(hù)成員限定符是因繼承才出現(xiàn)的。
(3)、實(shí)際上面的表格我們進(jìn)行一下總結(jié)會(huì)發(fā)現(xiàn),基類(lèi)的私有成員在子類(lèi)都是不可見(jiàn)?;?lèi)的其他
成員在子類(lèi)的訪問(wèn)方式 == Min(成員在基類(lèi)的訪問(wèn)限定符,繼承方式),public > protected 
> private。
(4)、使用關(guān)鍵字class時(shí)默認(rèn)的繼承方式是private,使用struct時(shí)默認(rèn)的繼承方式是public,不過(guò)
最好顯示的寫(xiě)出繼承方式。
5. 在實(shí)際運(yùn)用中一般使用都是public繼承,幾乎很少使用protetced/private繼承,也不提倡
使用protetced/private繼承,因?yàn)閜rotetced/private繼承下來(lái)的成員都只能在派生類(lèi)的類(lèi)里
面使用,實(shí)際中擴(kuò)展維護(hù)性不強(qiáng)

二、父類(lèi)和子類(lèi)對(duì)象賦值兼容轉(zhuǎn)換

1、賦值兼容也可以叫“切割”:

(1)、派生類(lèi)對(duì)象 可以賦值給 基類(lèi)的對(duì)象 / 基類(lèi)的指針 / 基類(lèi)的引用。這里有個(gè)形象的說(shuō)法叫切片或者切割。寓意把派生類(lèi)中父類(lèi)那部分切來(lái)賦值過(guò)去。

2、賦值兼容中對(duì)引用和指針的解讀:

其中,r 對(duì)象繼承的是父類(lèi)與子類(lèi)共有的這部分?jǐn)?shù)據(jù)的別名,指針也是類(lèi)似。

3、賦值兼容解釋

平時(shí)我們知道,C++類(lèi)型轉(zhuǎn)換的時(shí)候是會(huì)產(chǎn)生臨時(shí)對(duì)象的并且該臨時(shí)對(duì)象具有常屬性,賦值兼容這里子類(lèi)和父類(lèi)也是兩種類(lèi)型,會(huì)不會(huì)產(chǎn)生臨時(shí)對(duì)象吶?

答案 :這過(guò)程不會(huì)產(chǎn)生臨時(shí)對(duì)象,這是語(yǔ)法規(guī)定的特殊處理,證明如下:

三、繼承中的作用域

(一)、介紹:

(1)、在繼承體系中基類(lèi)和派生類(lèi)都有獨(dú)立的作用域。
(2)、子類(lèi)和父類(lèi)中有同名成員,子類(lèi)成員將屏蔽父類(lèi)對(duì)同名成員的直接訪問(wèn),這種情況叫隱藏,
也叫重定義。(在子類(lèi)成員函數(shù)中,可以使用 基類(lèi)::基類(lèi)成員 顯示訪問(wèn))
(3)、需要注意的是如果是成員函數(shù)的隱藏,只需要函數(shù)名相同就構(gòu)成隱藏。
(4)、注意在實(shí)際中在繼承體系里面最好不要定義同名的成員。

(二)、同名成員:隱藏

同名成員指子類(lèi)中定義的變量名可以和父類(lèi)中的變量名相同,這是可以的。因?yàn)樽宇?lèi)和父類(lèi)是屬于兩個(gè)作用域。此時(shí)子類(lèi)成員會(huì)隱藏父類(lèi)成員,這個(gè)過(guò)程叫 隱藏。

class Person
{
protected:
	string _name = "父類(lèi)賦值";
	string _sex;
	int _age;
};
class Student : public Person
{
public :
	void fun()
	{
		cout << _name << endl;
	}
protected:
	string _name = "子類(lèi)賦值";
	string _tem;
};
int main()
{
	Student s;
	s.fun();
	return 0;
}

如上隱藏過(guò)后,默認(rèn)訪問(wèn)的是子類(lèi)成員,此時(shí)向訪問(wèn)父類(lèi)成員需要加上域作用限定符。

實(shí)際中,不介意設(shè)計(jì)同名成員,這無(wú)疑是自己給自己設(shè)坑。

筆試題:

解答:

答案選【d】,首先排除a、c,因?yàn)閏重寫(xiě)是在后面多態(tài)部分的知識(shí),所以不作講解。

父類(lèi)和子類(lèi)是屬于兩個(gè)作用域,而重載是需要再同一作用域中才能構(gòu)成重載,所以b排除,最后,如果是成員函數(shù):子類(lèi)和父類(lèi)中只要函數(shù)名相同就會(huì)構(gòu)成隱藏關(guān)系(與返回值和參數(shù)列表無(wú)關(guān))。

如圖,會(huì)發(fā)現(xiàn)調(diào)不到?jīng)]有參數(shù)的fun函數(shù),因?yàn)樵摵瘮?shù)已經(jīng)被隱藏了。

四、子類(lèi)的默認(rèn)成員函數(shù)

(一)、介紹:

6個(gè)默認(rèn)成員函數(shù),“默認(rèn)”的意思就是指我們不寫(xiě),編譯器會(huì)變我們自動(dòng)生成一個(gè),那么在派生類(lèi)
中,這幾個(gè)成員函數(shù)是如何生成的呢?
1. 派生類(lèi)的構(gòu)造函數(shù)必須調(diào)用基類(lèi)的構(gòu)造函數(shù)初始化基類(lèi)的那一部分成員。如果基類(lèi)沒(méi)有默認(rèn)
的構(gòu)造函數(shù),則必須在派生類(lèi)構(gòu)造函數(shù)的初始化列表階段顯示調(diào)用。
2. 派生類(lèi)的拷貝構(gòu)造函數(shù)必須調(diào)用基類(lèi)的拷貝構(gòu)造完成基類(lèi)的拷貝初始化。
3. 派生類(lèi)的operator=必須要調(diào)用基類(lèi)的operator=完成基類(lèi)的復(fù)制。
4. 派生類(lèi)的析構(gòu)函數(shù)會(huì)在被調(diào)用完成后自動(dòng)調(diào)用基類(lèi)的析構(gòu)函數(shù)清理基類(lèi)成員。因?yàn)檫@樣才能
保證派生類(lèi)對(duì)象先清理派生類(lèi)成員再清理基類(lèi)成員的順序。
5. 派生類(lèi)對(duì)象初始化先調(diào)用基類(lèi)構(gòu)造再調(diào)派生類(lèi)構(gòu)造。
6. 派生類(lèi)對(duì)象析構(gòu)清理先調(diào)用派生類(lèi)析構(gòu)再調(diào)基類(lèi)的析構(gòu)。
7. 因?yàn)楹罄m(xù)一些場(chǎng)景析構(gòu)函數(shù)需要構(gòu)成重寫(xiě),重寫(xiě)的條件之一是函數(shù)名相同(這個(gè)我們后面會(huì)講
解)。那么編譯器會(huì)對(duì)析構(gòu)函數(shù)名進(jìn)行特殊處理,處理成destrutor(),所以父類(lèi)析構(gòu)函數(shù)不加
virtual的情況下,子類(lèi)析構(gòu)函數(shù)和父類(lèi)析構(gòu)函數(shù)構(gòu)成隱藏關(guān)系

(二)、默認(rèn)構(gòu)造函數(shù)

對(duì)于默認(rèn)構(gòu)造函數(shù),可以結(jié)合自定義類(lèi)型思考:

(1)、子類(lèi)獨(dú)有成員:按照內(nèi)置類(lèi)型和自定義類(lèi)型分別處理

(2)、父類(lèi)的成員:會(huì)調(diào)用父類(lèi)的構(gòu)造函數(shù)。

1、如何顯示寫(xiě)繼承構(gòu)造函數(shù)

class Person
{
public:
    Person(string name)
    {
	    cout << "調(diào)用父類(lèi)的構(gòu)造" << endl;
    }
protected:
	string _name ="父類(lèi)成員";
};
class Student : public Person
{
public :
	void fun()
	{
		cout << Person::_name << endl;
	}
protected:
	string _tem ="子類(lèi)成員";
};
int main()
{
	return 0;
}

錯(cuò)誤寫(xiě)法:

正確寫(xiě)法:

隱式寫(xiě)法:

有點(diǎn)像自定義類(lèi)型的處理方式,需要調(diào)用父類(lèi)的默認(rèn)構(gòu)造,若父類(lèi)沒(méi)有默認(rèn)構(gòu)造,則會(huì)報(bào)錯(cuò)。

顯示寫(xiě)法:

class Person
{
public:
	Person(string name)
	{
		cout << "調(diào)用父類(lèi)的構(gòu)造" << endl;
	}
protected:
	string _name = "父類(lèi)成員";
};
class Student : public Person
{
public :
	Student(string name, string tem) :
		Person(name),
		_tem(tem)
	{
		cout << "調(diào)用子類(lèi)的構(gòu)造" << endl;
	}
	void fun()
	{
		cout << Person::_name << endl;
	}
protected:
	string _tem = "子類(lèi)成員";
};
int main()
{
	Student s("1","1");
	return 0;
}

無(wú)論怎么寫(xiě),都是先調(diào)用父類(lèi)的構(gòu)造函數(shù),再調(diào)用子類(lèi)自己的構(gòu)造函數(shù),因?yàn)槌跏蓟斜淼某跏蓟樞蚴歉鶕?jù)成員聲明的順序確定的,而父類(lèi)的成員變量在內(nèi)存中始終在前面先聲明。

2、顯示寫(xiě)拷貝構(gòu)造函數(shù)

顯示寫(xiě)拷貝構(gòu)造,因?yàn)楦远x類(lèi)型處理方式類(lèi)似,子類(lèi)成員調(diào)用子類(lèi)的拷貝構(gòu)造,父類(lèi)成員調(diào)用父類(lèi)的拷貝構(gòu)造,所以我們需要知道誰(shuí)是父類(lèi)的成員,這里就需要用到賦值兼容的知識(shí),也就是切割問(wèn)題,直接把子類(lèi)對(duì)象傳遞給父類(lèi)的拷貝構(gòu)造,父類(lèi)會(huì)自己割出自己的那部分。

Student(const Student& s):
	Person(s),
	_tem(s._tem)
{
	cout << "調(diào)用子類(lèi)的拷貝構(gòu)造";
}

3、賦值重載的寫(xiě)法

與拷貝構(gòu)造類(lèi)似的,也是使用切割:

錯(cuò)誤寫(xiě)法:

因?yàn)樽宇?lèi)賦值重載與父類(lèi)的賦值重載函數(shù)名相同,所以構(gòu)成隱藏關(guān)系,所以這樣寫(xiě)的話是子類(lèi)自己無(wú)限遞歸了,這時(shí)我們要調(diào)用父類(lèi)的賦值重載就需要指定作用域:

正確寫(xiě)法:

Student& operator = (const Student& s)
{
	if (this != &s)
	{
		Person::operator=(s);
		_tem = s._tem;
	}
	return *this;
}

4、析構(gòu)函數(shù)的寫(xiě)法:

錯(cuò)誤寫(xiě)法:

原因如下:

C++特殊規(guī)定:子類(lèi)的析構(gòu)函數(shù)和父類(lèi)的析構(gòu)函數(shù)會(huì)構(gòu)成隱藏關(guān)系,由于后面多態(tài)的遠(yuǎn)呀,析構(gòu)函數(shù)被特殊處理了,父類(lèi)子類(lèi)的析構(gòu)函數(shù)的函數(shù)名最后都會(huì)被處理成destruuctor(),所以會(huì)構(gòu)成隱藏關(guān)系。

正確寫(xiě)法:

既然是隱藏關(guān)系,所以指定作用域:

但我們會(huì)發(fā)現(xiàn)居然調(diào)用了兩次析構(gòu),原因是這里又做了特殊處理:

為了保證先調(diào)用子類(lèi)析構(gòu),后調(diào)用父類(lèi)析構(gòu),父類(lèi)的析構(gòu)會(huì)在子類(lèi)析構(gòu)后自動(dòng)調(diào)用,所以不需要我們手動(dòng)調(diào)用:

~Student()
{
	cout << "調(diào)用子類(lèi)析構(gòu)" << endl;
}

問(wèn)題:為什么要先先調(diào)用子類(lèi)析構(gòu),后調(diào)用父類(lèi)析構(gòu)?

解答:

(1)、為了保持構(gòu)造函數(shù)的調(diào)用順序規(guī)則。

(2)、因?yàn)樽宇?lèi)的析構(gòu)函數(shù)中可能會(huì)使用父類(lèi)的成員,若先析構(gòu)父類(lèi),父類(lèi)資源就已經(jīng)清理釋放,而子類(lèi)析構(gòu)中還可能會(huì)去訪問(wèn)父類(lèi)成員,就可能造成野指針等問(wèn)題。顯示調(diào)用就無(wú)法保證一定會(huì)先子后父,所以設(shè)置成自動(dòng)調(diào)用。

5、繼承類(lèi)模板

要繼承類(lèi)模板就必須顯示實(shí)例化繼承:

五、繼承與友元

友元關(guān)系不能繼承,也就是說(shuō)基類(lèi)友元不能訪問(wèn)子類(lèi)私有和保護(hù)成員(理解爸爸的朋友不是我的朋友)。

六、繼承與靜態(tài)成員

基類(lèi)定義了static靜態(tài)成員,則整個(gè)繼承體系里面只有一個(gè)這樣的成員。無(wú)論派生出多少個(gè)子 類(lèi),都只有一個(gè)static成員實(shí)例 。 運(yùn)用: 在父類(lèi)的構(gòu)造函數(shù)中 ++靜態(tài)成員,可以統(tǒng)計(jì)父類(lèi)和子類(lèi)創(chuàng)建的對(duì)象個(gè)數(shù)。

七、單繼承、多繼承、菱形繼承

1、單繼承:

單繼承:一個(gè)子類(lèi)只有一個(gè)直接父類(lèi)時(shí)稱這個(gè)繼承關(guān)系為單繼承。

2、多繼承

多繼承:一個(gè)子類(lèi)有兩個(gè)或以上直接父類(lèi)時(shí)稱這個(gè)繼承關(guān)系為多繼承

注意:父類(lèi)用“ , ”隔開(kāi)。

3、菱形繼承

有了多繼承就可能出現(xiàn)菱形繼承,菱形繼承:菱形繼承是多繼承的一種特殊情況。

菱形繼承的問(wèn)題:從下面的對(duì)象成員模型構(gòu)造,可以看出菱形繼承有數(shù)據(jù)冗余和二義性的問(wèn)題。 在Assistant的對(duì)象中Person成員會(huì)有兩份。

class Person
{
public:
	Person(string name)
	{
		cout << "調(diào)用父類(lèi)的構(gòu)造" << endl;
	}
	Person(const Person& p)
	{
		cout << "調(diào)用父類(lèi)的拷貝構(gòu)造" << endl;
	}
	Person& operator = (const Person& s)
	{
		return *this;
	}
	~Person()
	{
		cout << "調(diào)用父類(lèi)析構(gòu)" << endl;
	}
protected:
	string _name = "父類(lèi)成員";
};
class Student : public Person
{
public:
	Student(string name, string tem) :
		Person(name),
		_tem(tem)
	{
		cout << "調(diào)用子類(lèi)的構(gòu)造" << endl;
	}
	Student(const Student& s) :
		Person(s),
		_tem(s._tem)
	{
		cout << "調(diào)用子類(lèi)的拷貝構(gòu)造";
	}
	Student& operator = (const Student& s)
	{
		if (this != &s)
		{
			Person::operator=(s);
			_tem = s._tem;
		}
		return *this;
	}
	~Student()
	{
		cout << "調(diào)用子類(lèi)析構(gòu)" << endl;
	}
	void fun()
	{
		cout << Person::_name << endl;
	}
protected:
	string _tem = "子類(lèi)成員";
};
class Teacher :public Person
{
};
class Assistant :Teacher, Student
{
};
int main()
{
	Assistant s;
	s._name;
	return 0;
}

對(duì)_name訪問(wèn)不明確,因?yàn)榧扔衼?lái)自Student的_name,還有來(lái)自Teacher的_name。 第一種解決方法是: 訪問(wèn)_name時(shí)可以指明作用域,但是這樣只能暫時(shí)解決二義性的問(wèn)題,沒(méi)有解決本質(zhì)問(wèn)題,有些信息不可能存在兩份,如年齡,學(xué)號(hào)等等,這樣設(shè)置就會(huì)存在空間浪費(fèi)。 第二種也是最合適的解決方法:使用虛繼承,如下:

解決菱形繼承的問(wèn)題:虛繼承virtual

在造成二義性的父類(lèi)(即最頂層的父類(lèi))的直接子類(lèi)繼承處,加個(gè)virtual關(guān)鍵字:

菱形繼承的使用場(chǎng)景:

菱形問(wèn)題的底層分析:

2:46:00,偏移量等等知識(shí)。

到此這篇關(guān)于探索C++的繼承法則的文章就介紹到這了,更多相關(guān)C++繼承法則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言統(tǒng)計(jì)輸入字符各個(gè)字母出現(xiàn)頻率的解題思路

    C語(yǔ)言統(tǒng)計(jì)輸入字符各個(gè)字母出現(xiàn)頻率的解題思路

    這篇文章主要介紹了C語(yǔ)言統(tǒng)計(jì)輸入字符各個(gè)字母出現(xiàn)頻率的解題思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • C/C++下讀取ENVI柵格文件格式的示例代碼

    C/C++下讀取ENVI柵格文件格式的示例代碼

    ENVI使用的是通用柵格數(shù)據(jù)格式,包含一個(gè)簡(jiǎn)單的二進(jìn)制文件( a simple flat binary )和一個(gè)相關(guān)的ASCII(文本)的頭文件,下面我們就來(lái)看看如何使用C++讀取ENVI柵格文件格式吧
    2024-10-10
  • C++從匯編的視角審視對(duì)象的創(chuàng)建問(wèn)題

    C++從匯編的視角審視對(duì)象的創(chuàng)建問(wèn)題

    這篇文章主要介紹了C++從匯編的視角看對(duì)象的創(chuàng)建,從匯編的視角來(lái)看,調(diào)用構(gòu)造器和調(diào)用 “返回對(duì)象” 的函數(shù)是一樣的,從匯編的角度來(lái)看,對(duì)象就是一堆數(shù)據(jù)的排列,比如說(shuō)最普通的對(duì)象就是數(shù)據(jù)成員按照聲明順序直接排列,需要的朋友可以參考下
    2022-01-01
  • C 語(yǔ)言基礎(chǔ)教程(我的C之旅開(kāi)始了)[四]

    C 語(yǔ)言基礎(chǔ)教程(我的C之旅開(kāi)始了)[四]

    C 語(yǔ)言基礎(chǔ)教程(我的C之旅開(kāi)始了)[四]...
    2007-02-02
  • C與C++中結(jié)構(gòu)體的區(qū)別

    C與C++中結(jié)構(gòu)體的區(qū)別

    C中的結(jié)構(gòu)體只涉及到數(shù)據(jù)結(jié)構(gòu),而不涉及到算法,也就是說(shuō)在C中數(shù)據(jù)結(jié)構(gòu)和算法是分離的,而到C++中一類(lèi)或者一個(gè)結(jié)構(gòu)體可以包含函數(shù)(這個(gè)函數(shù)在C++我們通常中稱為成員函數(shù)),C++中的結(jié)構(gòu)體和類(lèi)體現(xiàn)了數(shù)據(jù)結(jié)構(gòu)和算法的結(jié)合
    2013-10-10
  • 使用Qt封裝一個(gè)發(fā)送http請(qǐng)求通用類(lèi)

    使用Qt封裝一個(gè)發(fā)送http請(qǐng)求通用類(lèi)

    這篇文章主要為大家詳細(xì)介紹了如何使用Qt封裝一個(gè)通用類(lèi),可以通過(guò)QNetworkRequest和QNetworkReply進(jìn)行http請(qǐng)求,感興趣的可以了解一下
    2024-12-12
  • c文件匯編后函數(shù)參數(shù)傳遞的不同之處

    c文件匯編后函數(shù)參數(shù)傳遞的不同之處

    在w7 32位系統(tǒng)下把c文件匯編后,確實(shí)與mac后的差異很大??刹粌H僅是寄存器eax與rax的區(qū)別。我想說(shuō)的是函數(shù)參數(shù)傳遞的不同
    2013-11-11
  • Cmake中強(qiáng)大的輸出函數(shù)message示例解析

    Cmake中強(qiáng)大的輸出函數(shù)message示例解析

    這篇文章主要介紹了Cmake中強(qiáng)大的輸出函數(shù)message解析,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • 關(guān)于C++面向?qū)ο笤O(shè)計(jì)的訪問(wèn)性問(wèn)題詳解

    關(guān)于C++面向?qū)ο笤O(shè)計(jì)的訪問(wèn)性問(wèn)題詳解

    這篇文章主要給大家介紹了關(guān)于C++面向?qū)ο笤O(shè)計(jì)的訪問(wèn)性問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • C語(yǔ)言超詳細(xì)梳理排序算法的使用

    C語(yǔ)言超詳細(xì)梳理排序算法的使用

    這篇文章主要介紹了C語(yǔ)言完成排序的實(shí)例,在C語(yǔ)言基本類(lèi)型的排序中特別有用,下面我們一起進(jìn)入文章學(xué)習(xí)更詳細(xì)的內(nèi)容吧,需要的朋友可以參考下
    2022-03-03

最新評(píng)論