国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細)

這篇具有很好參考價值的文章主要介紹了C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、c++概述

二、初識c++

1、第一個c++程序

?2、c++面向?qū)ο蟮娜筇匦裕ㄖ匾?/p>

三、作用域運算符::

1、使用關(guān)鍵字namespace創(chuàng)建一個命名空間

2、命名空間只能定義在全局

3、 命名空間嵌套

?4、隨時將新的成員加入命名空間

5、命名空間中 函數(shù)的聲明和實現(xiàn)分開?

?6、無名命名空間

?7、命名空間取別名

8、使用using申明命名空間中的某幾個成員可用?

出現(xiàn)的問題1: 重復定義

遇到函數(shù)重載(函數(shù)名相同,形參不同):

9、using聲明整個命名空間

?五、類型增強

1、全局變量檢測增強

2、c++的函數(shù)形參必須有類型

3、c++中函數(shù)如果沒有參數(shù),必須寫void

4、更嚴格的類型轉(zhuǎn)換

5、結(jié)構(gòu)體類型增強(重要)

?6、c++新增bool類型

7、 三目運算符增

六、c++中的const

七、引用

1、引用的定義

2、引用作為函數(shù)的參數(shù)?

3、引用作為函數(shù)的返回值類型?

4、 常引用

?八、inline內(nèi)聯(lián)函數(shù)

1、內(nèi)聯(lián)函數(shù)概述

2、 宏函數(shù)和內(nèi)聯(lián)函數(shù)的區(qū)別

3、內(nèi)聯(lián)函數(shù)條件

4、內(nèi)聯(lián)函數(shù)的注意事項

九、函數(shù)重載

1、函數(shù)重載的概念

2、函數(shù)重載的條件

十、缺省函數(shù)

十一、占位參數(shù)


一、c++概述

???????C++是對C的擴展,任何有效的c程序都是有效的c++程序,c++程序可以使用已有的c程序庫。
C++語言在c語言的基礎(chǔ)上添加了面向?qū)ο缶幊毯头盒途幊?/strong>的支持。c++融合了3種不同的編程方式:c語言代表的過程性語言.c++在c語言基礎(chǔ)上添加的類代表的面向?qū)ο笳Z言.c++模板支持的泛型編程。我們常常將這兩門語言統(tǒng)稱為“C/C++”。

c編程思想:面向過程

c++編程思想:面向對象、泛型編程

面向過程(c): 通過分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步 實現(xiàn),并調(diào)用。

面向?qū)ο?c++):面向?qū)ο缶幊?,簡稱oop技術(shù)。算法與數(shù)據(jù)結(jié)構(gòu)被看做是一個整體(對象),程序=對象+對象+對象 +對象????????

c++標準:c++98、c++11

二、初識c++

1、第一個c++程序

????????#include:預(yù)編譯指令.引入頭文件iostream。?using namespace std:使用標準命名空間,命名空間用關(guān)鍵字namespace來定義。命名空間是.C++的一種機制..用來把單個標識符下的大量有邏輯聯(lián)系的程序?qū)嶓w組合到一起。此標識符作為此組群的名字。?cout<<"hello world"< endl;和printf 功能一樣,輸出字符串"hello world“。

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

? ? ? 擴展:c++頭文件沒有擴展名。但是有些c語言的頭文件被轉(zhuǎn)換為c++的頭文件,這些文件被重新命名丟掉了擴展名.h[使之成為c++風格頭文件),并在文件名稱前面加上前綴c(表明來自c語言)。例如c++版本的math,h.為 cmath。?

?2、c++面向?qū)ο蟮娜筇匦裕ㄖ匾?/h3>
  • 封裝:將相同屬性的數(shù)據(jù)和方法封裝在一起,加權(quán)限區(qū)分,用戶只能借助公共方法操作私有數(shù)據(jù)。
  • 繼承:體現(xiàn)在類和類之間的關(guān)系,如果A類繼承于B類,那么A類直接擁有B類的數(shù)據(jù)和方法。
  • 多態(tài):一個接口(函數(shù)),多種功能。

三、作用域運算符::

? ? ? ? ::解決局部變量與全局變量的重名問題C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習四、命名空間?

????????創(chuàng)建名字是程序設(shè)計過程中一項最基本的活動,當一個項目很大時,它會不可避免地包含大量名稱,名稱(name)可以是符號常量、變量、函數(shù)、結(jié)構(gòu)、枚舉、類和對象等等。c++允許我們對名字的產(chǎn)生和名字的可見性進行控制。我們之前在學習c語言可以通過static關(guān)鍵字來使得名字只得在本編譯單元內(nèi)可見,在c++中我們將通過一種通過命名空間控制對名稱的作用域。命名空間的本質(zhì):對符號常量、變量、函數(shù)、結(jié)構(gòu)、枚舉、類和對象等等進行封裝。

1、使用關(guān)鍵字namespace創(chuàng)建一個命名空間

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

2、命名空間只能定義在全局

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

3、 命名空間嵌套

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?4、隨時將新的成員加入命名空間

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

5、命名空間中 函數(shù)的聲明和實現(xiàn)分開?

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?6、無名命名空間

無命名空間中的標識符只能在本文件內(nèi)訪問,相當于給這個標識符加上了static。

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?7、命名空間取別名

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

8、使用using申明命名空間中的某幾個成員可用?

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

出現(xiàn)的問題1: 重復定義

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?若using A::num放在外部,作為全局變量,就不會重復定義。

遇到函數(shù)重載(函數(shù)名相同,形參不同):

namespace A {
	void fun()
	{
		cout << "A中fun void" << endl;
	}
	void fun(int a)
	{
		cout << "A中fun  int" << endl;
	}
	void fun(int a,int b)
	{
		cout << "A中fun int int" << endl;
	}
}
void test()
{	
	//函數(shù)重載,命名空間中所有同名函數(shù)都被聲明可用
	using A::fun();
	fun();
	fun(10);
	fun(10, 10);
}

9、using聲明整個命名空間

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

加作用域解決沖突:

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?五、類型增強

1、全局變量檢測增強

int a;//沒有賦值,當作聲明

int a=10;//賦值,當作定義

此代碼在c++中編譯失敗,在c下編譯通過。

2、c++的函數(shù)形參必須有類型

c語言:允許函數(shù)形參無類型(可以傳任意參數(shù)),c++不允許。

 //i沒有寫類型,可以是任意類型
int fun1(i)
{
printf("%d\n", i);
return 0;
}
//i沒有寫類型,可以是任意類型
int fun2(i)
{
printf("%s\n", i);
return 0;
 }

此代碼在c++中編譯失敗,在c下編譯通過。

3、c++中函數(shù)如果沒有參數(shù),必須寫void

????????在C語言中,int fun()表示返回值為int,接受任意參數(shù)的函數(shù),int fun(void)表示返回值為int的無參函數(shù)在C++中..int fun(和 int fun(void)具有相同的意義.都表示返回值為int的無參函數(shù)。

/沒有寫參數(shù),代表可以傳任何類型的實參
int fun()
{
    printf("fun函數(shù)\n");
    return 0;
}
int main(int argc, char *argv[])
  {
    fun(10);
    fun(10, 20);
    fun("hello");
    return 0;
  }

此代碼在c++中編譯失敗,在c下編譯通過,若加上void,c編譯也不通過。故無參數(shù)建議寫void。?

4、更嚴格的類型轉(zhuǎn)換

c語言中枚舉變量(底層是數(shù)字)允許賦其他int類型的值,c++不允許

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

5、結(jié)構(gòu)體類型增強(重要)

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?6、c++新增bool類型

????????標準c++的 bool類型有兩種內(nèi)建的常量true(轉(zhuǎn)換為整數(shù)1)和 false(轉(zhuǎn)換為整數(shù)0)表示狀態(tài)。這三個名字都是關(guān)鍵字。bool類型只有兩個值,true(1 值),false(0值) bool類型占1個字節(jié)大小給bool類型賦值時,非0值會自動轉(zhuǎn)換為true(1),0值會自動轉(zhuǎn)換false(0)

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

7、 三目運算符增

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

六、c++中的const

1、c++和c中的const都是修飾變量為 只讀。

2、c語言 嚴格遵循?const修飾的是只讀變量,但可以通過指針修改其值。C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?3、c++的const 會對變量 優(yōu)化,不可以通過指針修改其值。

????????如果以常量初始化const修飾的變量 編譯器會將變量的值 放入符號常量表中,不會立即給變 量開辟空間,只有當對a 取地址時 編譯器才會給a開辟空間(只讀變量)

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

通過指針變量p 訪問空間內(nèi)容*p取的是空間的值。通過變量名a 訪問的是符號常量表中的值?。

?4、如果以變量初始化const修飾的只讀變量,沒有符號常量表,立即開辟空間,可以通過指針修改其值。

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?5、如果以const修飾的是自定義類型的變量 也不會有符號常量表,立即開辟空間,可以通過指針修改其值。

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?6、c++中盡量使用const代替define

//#define A 10
const int A=10;
  • const有類型,可進行編譯器類型安全檢查。#define無類型,不方便進行類型檢查
  • const有作用域,而#define不重視作用域,宏不能作為命名空間、結(jié)構(gòu)體、類的成員,而const可以

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

七、引用

1、引用的定義

????????引用是c++對c的重要擴充。在c/c++中指針的作用基本都是一樣的,但是c++增加了另外一種給函數(shù)傳遞地址的途徑,這就是按引用傳遞(pass-by-reference).

引用的本質(zhì):給變量名取別名????????

引用的步驟:T &別名?= 變量名;(T為任意類型)

普通變量引用?:

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?數(shù)組引用:

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

指針變量引用:

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

函數(shù)引用:

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?注:引用(取別名)只有一次

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

2、引用作為函數(shù)的參數(shù)?

????????節(jié)約空間,函數(shù)內(nèi)部可以 通過 引用 操作外部變量。

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

3、引用作為函數(shù)的返回值類型?

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?以鏈式操作舉例:

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

4、 常引用

????????給常量取別名

舉例:

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

常引用 作為函數(shù)的參數(shù):防止函數(shù)內(nèi)部修改外部的值:

?C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?八、inline內(nèi)聯(lián)函數(shù)

1、內(nèi)聯(lián)函數(shù)概述

????????內(nèi)聯(lián)函數(shù):在編譯階段 將內(nèi)聯(lián)函數(shù)中的函數(shù)體替換函數(shù)調(diào)用處。避免函數(shù)調(diào)用時的開銷。

注:內(nèi)聯(lián)函數(shù) 必須在定義的時候 使用關(guān)鍵字inline修飾, 不能在聲明的時候使用inline

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

2、 宏函數(shù)和內(nèi)聯(lián)函數(shù)的區(qū)別

宏函數(shù)和內(nèi)聯(lián)函數(shù) 都會在適當?shù)奈恢?進行展開避免函數(shù)調(diào)用開銷。

宏函數(shù)的參數(shù)沒有類型,不能保證參數(shù)的完整性。

內(nèi)聯(lián)函數(shù)的參數(shù)有類型,能保證參數(shù)的完整性。

宏函數(shù)在預(yù)處理階段展開

內(nèi)聯(lián)函數(shù)在編譯階段展開

宏函數(shù)沒有作用域的限制,不能作為命名空間、結(jié)構(gòu)體、類的成員

內(nèi)聯(lián)函數(shù)作用域的限制,能作為命名空間、結(jié)構(gòu)體、類的成員

3、內(nèi)聯(lián)函數(shù)條件

不能存在任何形式的循環(huán)語句

不能存在過多的條件判斷語句

函數(shù)體不能過于龐大

不能對函數(shù)取地址

4、內(nèi)聯(lián)函數(shù)的注意事項

  • 在內(nèi)聯(lián)函數(shù)定義的時候加inline修飾
  • 類中的成員函數(shù) 默認都是內(nèi)聯(lián)函數(shù)(不加inline 也是內(nèi)聯(lián)函數(shù))
  • 有時候加上inline也不一定是內(nèi)聯(lián)函數(shù),不加inline修飾也有可能是內(nèi)聯(lián)函數(shù)。 由編譯器根據(jù)內(nèi)聯(lián)條件決定。

九、函數(shù)重載

1、函數(shù)重載的概念

????????在傳統(tǒng)c語言中,函數(shù)名必須是唯一的,程序中不允許出現(xiàn)同名的函數(shù)。在c++中是允許出現(xiàn)同名的函數(shù),這種現(xiàn)象稱為函數(shù)重載。函數(shù)重載的目的就是方便使用函數(shù)名。

????????函數(shù)重載:用同一個函數(shù)名 代表不同的函數(shù)功能。

????????函數(shù)重載 是c++的靜態(tài)多態(tài)的特性。

2、函數(shù)重載的條件

同一作用域,函數(shù)的參數(shù)類型、個數(shù)、順序不同都可以重載

注:返回值類型不能作為重載的條件

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

c++中 不能直接將函數(shù)名作為函數(shù)的入口地址?:函數(shù)名和參數(shù) 共同決定函數(shù)的入口地址

十、缺省函數(shù)

????????C++在聲明函數(shù)原型的時可為一個或者多個參數(shù)指定默認(缺省)的參數(shù)值當函數(shù)調(diào)用的時候如果沒有指定這個值,編譯器會自動用默認值代替。

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?注:如果函數(shù)的某個參數(shù)設(shè)置為默認參數(shù), 那么這個參數(shù)的右邊的所有參數(shù) 都必須是默認參數(shù)。

十一、占位參數(shù)

????????重載++運算符,適用于函數(shù)名及參數(shù)形同的重載。

C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習

?占位參數(shù) 也可以是缺省參數(shù)(默認參數(shù)),但使用時容易產(chǎn)生二義性

?C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細),c++,c++,開發(fā)語言,學習文章來源地址http://www.zghlxwxcb.cn/news/detail-603346.html

到了這里,關(guān)于C++面向?qū)ο蟪绦蛟O(shè)計-基礎(chǔ)入門(超詳細)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包