日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++学习总结(函数、类与对象)

發(fā)布時(shí)間:2024/9/30 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++学习总结(函数、类与对象) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:時(shí)間過(guò)的好快,轉(zhuǎn)眼一學(xué)期就過(guò)去了,期末考試也快到了,所以就復(fù)習(xí)一遍同時(shí)也將自己學(xué)習(xí)的感悟總結(jié)下來(lái)。前面幾章大多與C語(yǔ)言相似,就不總結(jié)了。

第三章——函數(shù)
參數(shù)傳遞

#include <iostream>using namespace std;void swap(int a,int b) {int t=a;b=t;a=b; }int main() {int x=5,y=10;cout<<"x= "<<x<<" y= "<<y<<endl;swap(x,y);cout<<"x= "<<x<<" y= "<<y<<endl;return 0; } //輸出結(jié)果 x= 5 y= 10 x= 5 y= 10

通過(guò)這個(gè)例子,可以看出形參值的改變對(duì)實(shí)參是無(wú)影響的,如果是引用傳遞的話就另當(dāng)別論了,看下面這個(gè)例子。

可以看出,如果使用引用參數(shù)的話是可以改變實(shí)參的值,但要注意:

  • 聲明一個(gè)引用時(shí),必須同時(shí)對(duì)它進(jìn)行初始化,使它指向一個(gè)已經(jīng)存在的對(duì)象
  • 一旦一個(gè)引用被初始化后,就不能改為指向其他對(duì)象

內(nèi)斂函數(shù)

對(duì)于內(nèi)斂函數(shù),我的理解是就相當(dāng)于一個(gè)類中公有類型的成員函數(shù),只不過(guò)是放在了類外面,需要在函數(shù)返回值類型前加上inline,而且內(nèi)斂函數(shù)大多都是調(diào)用頻率很高,而且代碼是相對(duì)簡(jiǎn)單的。

帶默認(rèn)形參值的函數(shù)

通過(guò)這個(gè)代碼就會(huì)理解帶默認(rèn)形參值的函數(shù),但也有幾點(diǎn)要注意:

  • 有默認(rèn)值的形參必須在形參列表的最后,因?yàn)閷?shí)參與形參是按照從左到右的順序建立關(guān)系的。
  • 在相同的作用域中,不允許在同一個(gè)函數(shù)的多個(gè)聲明中對(duì)一個(gè)參數(shù)的默認(rèn)值重復(fù)定義。

函數(shù)重載

說(shuō)白了,就是同一個(gè)函數(shù)名,但又不同的功能,這就叫函數(shù)重載,也需注意:

  • 函數(shù)重載不以形參名來(lái)區(qū)分函數(shù)
  • 函數(shù)重載不以返回值來(lái)區(qū)分函數(shù)

第四章——類與對(duì)象

類的定義:
class 類名稱
{
public:
外部接口
private:
私有成員
};
對(duì)象聲明:
類名 對(duì)象名;
對(duì)象訪問(wèn)數(shù)據(jù)成員:
對(duì)象名.數(shù)據(jù)成員名
對(duì)象調(diào)用函數(shù)成員:
對(duì)象名.函數(shù)成員名(參數(shù)表)
成員函數(shù)的實(shí)現(xiàn):
返回值類型 類名::函數(shù)成員名(參數(shù)表)
{
函數(shù)體
}

例如:

void Clock::setTime(int newH,int newM,int newS) {hour=newH;minute=newM;second=newS;}void Clock::showTime() {cout<<huor<<":"<<minute<<":"<<seconde<<endl;}

到這才算剛接觸到C++,這些便是C++訪問(wèn)成員函數(shù)或?qū)ο蟮囊恍┓椒ā?/p>

構(gòu)造函數(shù)

通過(guò)這個(gè)代碼,感覺(jué)構(gòu)造函數(shù)有一般成員函數(shù)的特征,但構(gòu)造函數(shù)有一些特殊的特征:構(gòu)造函數(shù)的函數(shù)名與類名相同,而且沒(méi)有返回值

復(fù)制構(gòu)造函數(shù)

復(fù)制構(gòu)造函數(shù)的一般方法
class 類名
{
public:
類名(形參名);//構(gòu)造函數(shù)
類名(類名 &對(duì)象名);//復(fù)制構(gòu)造函數(shù)

};
類名::類名(類名 &對(duì)象名);//復(fù)制構(gòu)造函數(shù)的實(shí)現(xiàn)
{
函數(shù)體
}

#include <iostream>using namespace std;class point { public:point(int xx=0,int yy=0) {x=xx;y=yy;}point(point &p);int getX() {return x;}int getY() {return y;} private:int x,y; }; //成員函數(shù)實(shí)現(xiàn) point::point(point &p) {x=p.x;y=p.y;cout<<"copy"<<endl; } //形參為point類對(duì)象的函數(shù) void fun1(point p) {cout<<p.getX()<<endl; }//返回值為point類對(duì)象的函數(shù) point fun2(){point a(1,2);return a; }int main() {point a(4,5);point b=a;//情況一,用a初始化b.第一次調(diào)用復(fù)制構(gòu)造函數(shù)cout<<b.getX()<<endl;fun1(b);//情況二,對(duì)象b作為fun1的實(shí)參。第二次調(diào)用復(fù)制構(gòu)造函數(shù)b=fun2();//情況三,函數(shù)返回值是類對(duì)象,函數(shù)返回時(shí),調(diào)用復(fù)制構(gòu)造函數(shù)cout<<b.getX()<<endl;return 0; }


通過(guò)這個(gè)代碼來(lái)了解一下復(fù)制構(gòu)造函數(shù),復(fù)制構(gòu)造函數(shù)擁有一般構(gòu)造函數(shù)的所有特性,而它所不同的是形參是本類的對(duì)象的引用。作用是使用一個(gè)已經(jīng)存在的對(duì)象(由復(fù)制構(gòu)造函數(shù)的參數(shù)指定),去初始化同類的一個(gè)新對(duì)象。這個(gè)概念理解起來(lái)最好是通過(guò)代碼,這樣便于理解。

復(fù)制函數(shù)有三種情況可以被調(diào)用:

  • 當(dāng)用類的一個(gè)對(duì)象去初始化該類的另一個(gè)對(duì)象時(shí)。
  • 如果函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)時(shí),進(jìn)行形參和實(shí)參的結(jié)合時(shí)。
  • 如果函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行完成返回調(diào)用者時(shí)。

析構(gòu)函數(shù)
構(gòu)造對(duì)象時(shí),構(gòu)造函數(shù)中分配了資源,動(dòng)態(tài)申請(qǐng)了一些內(nèi)存單元,在對(duì)象消失時(shí)需要釋放這些內(nèi)存單元。而析構(gòu)函數(shù)就用來(lái)完成對(duì)象被刪除前的一些清理工作析構(gòu)函數(shù)是在對(duì)象的生產(chǎn)期即將結(jié)束的時(shí)刻被自動(dòng)調(diào)用的。而且析構(gòu)函數(shù)不接收任何參數(shù)

與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的C++学习总结(函数、类与对象)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。