C++學(xué)習(xí)8

姓名:張立斐 ? 學(xué)號:19020700001? ?學(xué)院:電子工程學(xué)院?

轉(zhuǎn)自:https://blog.csdn.net/lvliang2017232003/article/details/86087051

【嵌牛導(dǎo)讀】C++學(xué)習(xí)

【嵌牛鼻子】C++

【嵌牛提問】如何學(xué)習(xí)C++?

【嵌牛正文】

1.類對象的程序通過訪問公有成員函數(shù)(或友元函數(shù))來訪問對象的私有成員。(類方法可以訪問類的私有成員)

組成類接口的成員函數(shù)放在公有部分。

2.要創(chuàng)建類對象,可以聲明類變量,也可以使用new為類對象分配存儲空間??梢詫ο笞鳛楹瘮?shù)的參數(shù)和返回值,也可將對象賦值給另一個

3.ostream類中包含控制格式的成員函數(shù)setf(),可以修改輸出數(shù)據(jù)格式,統(tǒng)一格式。

std::cout.setf(std::ios_base::fixed, std::ios_base::floatfield)? //設(shè)置cout對象的一個標(biāo)記,命令cout使用定點表示法

std::count.precision(3);? //cout在使用定點表示法時顯示3為小數(shù)

std::ios_base::fmtflags orig=std::cout.setf(std::ios_base::fixed); //保留原始標(biāo)記

std::streamsize prec=std::cout.precision(3);//保留原始值

.................... std::count.precision(2);.................

std::cout.setf(orig, std::ios_base::floatfield);//重置舊格式

std::cout.precision(prec);

3.類的構(gòu)造函數(shù):構(gòu)造一個和類名相同的函數(shù),沒有返回類型,放在類聲明的公有部分。

使用構(gòu)造函數(shù)來初始化類對象??蓜?chuàng)建多個同名的構(gòu)造函數(shù),(重載,參數(shù)列表不同)

類的析構(gòu)函數(shù):類對象過期時,析構(gòu)函數(shù)將被自動調(diào)用。

//Stock是一個類名

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

Stock::Stock(const string &co="Error", int n=0, double pr=0.0);//所有參數(shù)為默認(rèn)值的構(gòu)造函數(shù)

Stock::Stock();? ? //沒有參數(shù)的默認(rèn)構(gòu)造函數(shù),只有沒有提供任何構(gòu)造函數(shù)時,編譯器提供默認(rèn)的構(gòu)造函數(shù)此時聲明Stock stock1; 有效

Stock::Stock(const std::string &co, long n, double pr){? ? ? ? }? //構(gòu)造函數(shù) 若提供了非默認(rèn)構(gòu)造函數(shù),聲明Stock stock1; 無效

//要創(chuàng)建對象,又不顯示初始化,必須自行定義一個不接受任何參數(shù)的默認(rèn)構(gòu)造函數(shù)

//用戶提供的默認(rèn)構(gòu)造函數(shù)通常給所有成員提供了隱式初始值

Stock first();? //這是一個返回Stock對象的函數(shù)

Stock second;? //調(diào)用隱式的構(gòu)造函數(shù),不用括號

析構(gòu)函數(shù) :

Stock::~Stock() { }? //析構(gòu)函數(shù)?

初始化類對象方法:

Stock stock1("NanoSmart", 12, 20.0);? //用構(gòu)造函數(shù)來初始化類對象 stock1法1

Stock stock2 = Stock("Assuing Obj", 2, 2.0); //用構(gòu)造函數(shù)來初始化類對象stock2法2

Stock *pstock= new Stock("Assuing Obj", 2, 2.0) ; //將初始化對象的地址賦給pstock

C++11列表化可以初始化對象Stock stock2={ "Assuing Obj", 2, 2.0 };? //可省略=

聲明類對象數(shù)組:

Stock mystuff[4];

初始化: Stock mystuff[4]={ Stock("Assuing Obj", 2, 2.0), Stock("ALEX ", 5, 6.0), Stock("Helenng Obj", 2, 2.0),Stock("Nihlyssuing Obj", 2, 2.0)};

4.const成員函數(shù)(函數(shù)不會修改調(diào)用對象)

類中聲明:void show() const;

定義:void Stock::show() const? {? }

5.this 指針設(shè)置為類方法調(diào)用它自己本身對象的地址。要引用整個調(diào)用對象則可用*this; 調(diào)用對象的成員函數(shù):this->show

6.類作用域中的常量:

class Bakbery{

private: enum {Months=12};? //這種方式聲明枚舉并不會創(chuàng)建類數(shù)據(jù)成員,即所有對象中不包含枚舉。在作用域為Bakbery類的? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //代碼中遇到Months,編譯器用12替代

(或)static const int Months=12;

...};

7.作用域內(nèi)的枚舉:

enum class egg {Small,Medium,Large,Jumbo};

enum class shirt{Small,Medium,Large,XLarge}; //可用struct代替class

egg ch=egg::Large;

shirt Flod=shirt::Large;

8.函數(shù)的參數(shù)是字符串時,不用用char數(shù)組,可以用char* 或 string

用char * 時,字符串賦值可以srtncpy()函數(shù)

用string時,可直接賦值,要包含頭文件string

class Bankcount {

private: char name[40]; char acctnum[25]; double balance;

public:? Bankcount( const char * client, conat char * num,dounle bail=0)

//或 Bankcount( const std::string & client,? const std::string & num,? dounle bail=0)

................};

Bankcount::Bankcount( const char * client, conat char * num,dounle bail)

{ srtncpy(name,client,39); name[39]='\0';? srtncpy(acctnum,num,24); name[24]='\0';? balance=bail }

//或者 Bankcount( const std::string & client,? const std::string & num,? dounle bail)

{ name=client; acctnum=num; balance= bail; }

————————————————

版權(quán)聲明:本文為CSDN博主「lvliang2229」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/lvliang2017232003/article/details/86087051

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容