欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:開發(fā)語言 C++和QT

柚子快報激活碼778899分享:開發(fā)語言 C++和QT

http://yzkb.51969.com/

引用

概念

引用是個別名

格式

數(shù)據(jù)類型 &引用名 = 同類型的變量名 (&引用符號)

數(shù)據(jù)類型 &引用名 = 同類型的變量名 (&引用符號)

int a = 10;

int &b = a; //給a取個別名叫b, b引用a

數(shù)組引用

int a;

a=10;

int &b = a;

cout << a << " " << b << endl;

b=20;

cout << a << " " << b << endl;

int arr[5] = {10,20,30,40,50};

int (*p)[5] = &arr;

int (&str)[5] = arr;

cout << arr[3] << " " << str[3] << endl;

cout << (*p)[3] << endl;

cout << &arr << endl;

函數(shù)引用

int max(int a,int b)

{

return a>b?a:b;

}

int main()

{

int (*p)(int,int) = max;

int (&fun)(int,int) = max;

cout << p(13,32) << endl;

cout << fun(12,53) << endl;

return 0;

}

當結(jié)構(gòu)體中有引用成員時

當結(jié)構(gòu)體中有引用成員,使用該結(jié)構(gòu)體類型,定義結(jié)構(gòu)體變量時,就必須定義的同時初始化,就不可以先定義,后賦值。

struct student

{

string name;

int age;

double &score;

};

int main()

{

double a;

cout << "請輸入" << endl;

cin >> a;

struct student stu = {"zhang",10,a};

stu.name = "zhang";

cout << stu.name << " " << stu.age << " " << stu.score << endl;

return 0;

}

值傳遞,地址傳遞,引用傳遞

值傳遞:一定不改變原值

地址傳遞:可能改變原值

引用傳遞:可能改變原值

space std;

void fun(int a, int b)// int a = a

{

a++;

b++;

}

void fun2(int *a, int *b) //int *a = &a

{

*a++;

*b++;

}

void fun3(int &a, int &b)//int &a = a, int &b = b

{

int c = a;

b++;

}

int main()

{

int a = 10, b = 20;

fun(a,b); //傳值,一定不會改變目標的值

cout << "main: a = " << a << " b = " << b << endl;

fun2(&a, &b); //傳址,可能會改變目標的值,具體看代碼設(shè)計

cout << "main: a = " << a << " b = " << b << endl;

fun3(a,b);//傳引用,可能會改變目標的值,具體看代碼設(shè)計

cout << "main: a = " << a << " b = " << b << endl;

return 0;

}

當引用作為函數(shù)的返回值的時候

要求返回的變量生命周期足夠的長(static修飾或者malloc申請空間)

指針和引用的區(qū)別

指針和引用都可以修改變量的值,但本質(zhì)不同:指針是通過地址改變目標的值,而引用就是目標本身

指針:

存儲地址的變量可以先定義,后指向可以改變指向定義指針需要重新申請空間有指針數(shù)組有多級指針

引用:

引用是個別名必須定義的同時初始化指針可以改變指向,而引用一旦指定目標,就不能被改變定義引用不用重新申請空間沒有引用數(shù)組(引用不是數(shù)據(jù)類型)沒有二級引用

const

const修飾的為只讀變量,也成為常變量

const修飾的局部變量在棧區(qū),const修飾的全局變量在靜態(tài)區(qū)的.ro段

const修飾的變量必須在定義的同時初始化

如果想要引用常變量,需要常引用(const int &b = a)

函數(shù)重載

概念

在同一個作用域下,兩個以上的函數(shù),取相同的函數(shù)名,其函數(shù)的形參類型或者形參個數(shù)不同,編譯器會根據(jù)實參的參數(shù)類型或者個數(shù)自動調(diào)用匹配的函數(shù),這就是函數(shù)重載。

注:返回值類型不同不算重載

例如以下三個函數(shù)為重載

int task(int x)

{

}

int task(char x)

{

}

int task(int x,int b)

{

}

使用函數(shù)重載實現(xiàn)不同數(shù)據(jù)類型之和

#include

using namespace std;

int add(int x, int y)

{

return x+y;

}

double add(double x, double y)

{

return x+y;

}

int add(char x, char y)

{

return x+y;

}

string add(string x, string y)

{

return x+y;

}

int main()

{

cout << add(1,2) << endl;

cout << add(1.24, 4.56) << endl;

cout << add('a', '1') << endl;

cout << add("hello", "world") << endl;

return 0;

}

帶有默認參數(shù)的函數(shù)定義和使用

#include

using namespace std;

void fun(string name = "kity")

{

cout << name << endl;

}

int main()

{

fun();

fun("hello");

return 0;

}

啞元(了解)

函數(shù)在定義形參時,只定義形參類型,不定義形參名,在函數(shù)中也不使用。

作用:沒有作用,占位。

內(nèi)聯(lián)函數(shù)

在函數(shù)前面加上inline關(guān)鍵字,那么該函數(shù)就是內(nèi)聯(lián)函數(shù)

要求:

函數(shù)的體積要?。ùa一般不超過5行)函數(shù)不能有復(fù)雜語句(循環(huán),遞歸)

作用:提高代碼的運行效率

原因:內(nèi)聯(lián)函數(shù)在編譯時展開

內(nèi)斂函數(shù)和帶參宏的區(qū)別

內(nèi)聯(lián)函數(shù):

編譯時展開內(nèi)聯(lián)函數(shù)時函數(shù)調(diào)用

帶參宏:

預(yù)處理時打開帶參宏是替換

C++中的結(jié)構(gòu)體

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

C語言中的結(jié)構(gòu)體在C++中依然適用

C++:

可以在定義結(jié)構(gòu)體的時候賦初始值結(jié)構(gòu)體中可以有函數(shù)在使用結(jié)構(gòu)體類型定義變量時可以省略關(guān)鍵字struct結(jié)構(gòu)體的成員有訪問權(quán)限結(jié)構(gòu)體有繼承結(jié)構(gòu)體有特殊的成員函數(shù)

C語言:

定義結(jié)構(gòu)體時不能賦初始值結(jié)構(gòu)體中不能有函數(shù)在使用結(jié)構(gòu)體類型定義變量時不可以省略關(guān)鍵字struct結(jié)構(gòu)體成員沒有訪問權(quán)限結(jié)構(gòu)體不能繼承及溝通中沒有特殊的成員函數(shù)

*C++中結(jié)構(gòu)體名一般首字母大寫

概念

C++中的類由C++中的結(jié)構(gòu)體演變而來,只是默認的訪問權(quán)限和默認的繼承方式,以及關(guān)鍵字不同,其他都相同。

一般構(gòu)造數(shù)據(jù)類型中既有變量又有函數(shù)的類型,由類來完成。

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

默認訪問權(quán)限:

C++中結(jié)構(gòu)體的默認訪問權(quán)限是:public共有的

C++中類的默認訪問權(quán)限是:private共有的

默認繼承方式:

C++中結(jié)構(gòu)體的默認繼承方式是:public共有的

C++中類的默認繼承方式是:private共有的

關(guān)鍵字:

C++結(jié)構(gòu)體:struct

C++類:class

訪問權(quán)限:public共有的,private共有的,protected保護的

格式

class 類名

{

public:

公共的數(shù)據(jù)成員、成員函數(shù)

protected:

受保護的數(shù)據(jù)成員,成員函數(shù)

private:

私有的數(shù)據(jù)成員,成員函數(shù)

};

訪問權(quán)限的介紹

public:共有權(quán)限,表示該權(quán)限下的成員,表示該權(quán)限的屬性(變量),方法(函數(shù))在類內(nèi),子類,類外都能訪問。

protected:該權(quán)限是受保護權(quán)限,表示該權(quán)限下的屬性(變量)、方法(函數(shù)),在類內(nèi)、子類可以被訪問,而類外不能被訪問。

private:該權(quán)限是私有權(quán)限,該權(quán)限下的屬性(變量)、方法(函數(shù)),只能在類內(nèi)被訪問,子類、類外不可以被訪問。

封裝

類的三大屬性:封裝、繼承、多態(tài)

封裝:寫一個類的過程,就是將數(shù)據(jù)和對數(shù)據(jù)的處理捆綁在一起的過程。

屬性 + 方法

變量 + 函數(shù)

相關(guān)名稱: 類內(nèi)都可以成為成員,而成員可以具體分為 數(shù)據(jù)成員、成員函數(shù)。

#include

using namespace std;

//封裝一個 學(xué)生 類

class Stu

{

int a; //默認私有訪問權(quán)限

private:

string name;

protected:

int age;

public:

double score;

public:

dan

當成員函數(shù)的形參名和數(shù)據(jù)成員同名時

表明該數(shù)據(jù)成員屬于哪個類,即加上類名和作用域限定符。

類里的每個非靜態(tài)成員函數(shù),都隱藏了一個this指針形參。

this指針

類里的每個非靜態(tài)成員函數(shù),都隱藏了一個this指針形參。

誰使用我,我就指向誰。

this指針的原型:

eg : Stu * const this; //指向不可變,指向里的值可變

類外定義成員函數(shù)

在類內(nèi)聲明函數(shù)

在類外定義成員函數(shù),需要表明該函數(shù)屬于哪個類的,即加上類名和作用域限定符

#include

using namespace std;

//封裝一個 學(xué)生 類

class Stu

{

int a; //默認私有訪問權(quán)限

private:

string name;

protected:

int age;

public:

double score;

public:;

void init(string n, int a, double s);

void show();

};

//在類外定義成員函數(shù)

void Stu::init(string name, int age, double score) // Stu * const this

{

this->name = name;

this->age = age;

this->score = score;

//this = nullptr; // NULL this指針使用過程中 指向不可變

}

void Stu::show()

{

cout << this << endl;

cout << name << endl; //類內(nèi)可以訪問私有成員

cout << age << endl; //類內(nèi)可以訪問受保護成員

cout << score << endl; //類內(nèi)可以訪問共有成員

}

int main()

{

//使用學(xué)生這樣的類 實例化一個學(xué)生對象

Stu s1;

//s1.name = "張三"; //類外不可以訪問私有成員

//s1.age = 20; //類外不可以訪問受保護成員

s1.score = 99; //類外可以訪問公共的成員

s1.init("張三", 32, 78);

s1.show();

return 0;

}

練習(xí)

自己封裝一個矩形類(Rect),擁有私有屬性:寬度(width)、高度(height),

定義公有成員函數(shù):

初始化函數(shù):void init(int w, int h)

更改寬度的函數(shù):set_w(int w)

更改高度的函數(shù):set_h(int h)

輸出該矩形的周長和面積函數(shù):void show()

#include

using namespace std;

//封裝一個矩形類

class Rect

{

private:

int width;

int height;

public:;

void init(int w,int h);

void set_w(int w);

void set_h(int h);

void show();

};

//在類外定義成員函數(shù)

void Rect::init(int w,int h)

{

this->width = w;

this->height = h;

}

void Rect::set_w(int w)

{

this->width = w;

}

void Rect::set_h(int h)

{

this->height = h;

}

void Rect::show()

{

cout << "面積:" << width*height << endl;

cout << "周長:" << 2*width+2*height << endl;

}

int main()

{

Rect s1;

s1.init(4,5);

s1.show();

return 0;

}

柚子快報激活碼778899分享:開發(fā)語言 C++和QT

http://yzkb.51969.com/

參考閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19468877.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄