我的隨行筆記8 C++ Primer Plus
1.類物件的程式透過訪問公有成員函式(或友元函式)來訪問物件的私有成員。(類方法可以訪問類的私有成員)
組成類介面的成員函式放在公有部分。
2.要建立類物件,可以宣告類變數,也可以使用new為類物件分配儲存空間。可以將物件作為函式的引數和返回值,也可將物件賦值給另一個
3.ostream類中包含控制格式的成員函式setf(),可以修改輸出資料格式,統一格式。
std::cout.setf(std::ios_base::fixed, std::ios_base::floatfield) //設定cout物件的一個標記,命令cout使用定點表示法
std::count.precision(3); //cout在使用定點表示法時顯示3為小數
std::ios_base::fmtflags orig=std::cout.setf(std::ios_base::fixed); //保留原始標記
std::streamsize prec=std::cout.precision(3);//保留原始值
.................... std::count.precision(2);.................
std::cout.setf(orig, std::ios_base::floatfield);//重置舊格式
std::cout.precision(prec);
3.類的建構函式:構造一個和類名相同的函式,沒有返回型別,放在類宣告的公有部分。
使用建構函式來初始化類物件。可建立多個同名的建構函式,(過載,引數列表不同)
類的解構函式:類物件過期時,解構函式將被自動呼叫。
//Stock是一個類名
建構函式:
Stock::Stock(const string &co="Error", int n=0, double pr=0.0);//所有引數為預設值的建構函式
Stock::Stock(); //沒有引數的預設建構函式,只有沒有提供任何建構函式時,編譯器提供預設的建構函式此時宣告Stock stock1; 有效
Stock::Stock(const std::string &co, long n, double pr){ } //建構函式 若提供了非預設建構函式,宣告Stock stock1; 無效
//要建立物件,又不顯示初始化,必須自行定義一個不接受任何引數的預設建構函式
//使用者提供的預設建構函式通常給所有成員提供了隱式初始值
Stock first(); //這是一個返回Stock物件的函式
Stock second; //呼叫隱式的建構函式,不用括號
解構函式 :
Stock::~Stock() { } //解構函式
初始化類物件方法:
Stock stock1("NanoSmart", 12, 20.0); //用建構函式來初始化類物件 stock1法1
Stock stock2 = Stock("Assuing Obj", 2, 2.0); //用建構函式來初始化類物件stock2法2
Stock *pstock= new Stock("Assuing Obj", 2, 2.0) ; //將初始化物件的地址賦給pstock
C++11列表化可以初始化物件Stock stock2={ "Assuing Obj", 2, 2.0 }; //可省略=
宣告類物件陣列:
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成員函式(函式不會修改呼叫物件)
類中宣告:void show() const;
定義:void Stock::show() const { }
5.this 指標設定為類方法呼叫它自己本身物件的地址。要引用整個呼叫物件則可用*this; 呼叫物件的成員函式:this->show
6.類作用域中的常量:
class Bakbery{
private: enum {Months=12}; //這種方式宣告列舉並不會建立類資料成員,即所有物件中不包含列舉。在作用域為Bakbery類的 //程式碼中遇到Months,編譯器用12替代
(或)static const int Months=12;
...};
7.作用域內的列舉:
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.函式的引數是字串時,不用用char陣列,可以用char* 或 string
用char * 時,字串賦值可以srtncpy()函式
用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; }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2716169/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我的隨行筆記2 C++ Primer Plus筆記C++
- 我的隨行筆記11 C++ Primer Plus筆記C++
- 我的隨行筆記7 C++ Primer Plus筆記C++
- 我的隨行筆記10 C++ Primer Plus筆記C++
- 我的隨行筆記9 C++ Primer Plus筆記C++
- 我的隨行筆記6 C++ Primer Plus筆記C++
- 我的隨行筆記5 C++ Primer Plus筆記C++
- 我的隨行筆記4 C++ Primer Plus筆記C++
- 我的隨行筆記3 C++ Primer Plus 3--指標筆記C++指標
- C++ Primer Plus隨記1C++
- C++ Primer Plus 隨記(第八章)C++
- C++ primer Plus學習筆記(第二章)C++筆記
- 《C++ Primer Plus》15.1 友元 學習筆記C++筆記
- C++ Primer筆記C++筆記
- C++ primer 筆記C++筆記
- 《C++ Primer Plus》16.1 string類 學習筆記C++筆記
- C++ Primer Plus第6版18個重點筆記C++筆記
- 【C++ Primer Plus】學習筆記--第10章 物件和類C++筆記物件
- C++ Primer Plus(四)C++
- C++ Primer Plus(三)C++
- C++ Primer Plus(一)C++
- 《C++ Primer》筆記-#include,#ifndefC++筆記
- C++ Primer Plus 第四章 複合型別 學習筆記C++型別筆記
- c++ primer 第二章閱讀筆記C++筆記
- element-plus隨筆
- 《C++ Primer》學習筆記(六):C++模組設計——函式C++筆記函式
- 《C++ Primer》學習筆記(八):標準 IO 庫C++筆記
- C++ Primer 讀書筆記 - 第一章C++筆記
- 黑馬筆記--C++基礎篇--隨筆筆記C++
- 隨筆 sqlplus / as sysdbaSQL
- 《C++ Primer》讀書筆記(第一章 開始)C++筆記
- C++ Primer 5th筆記(5)chapter5 語句C++筆記APT
- C++ Primer 第二章 學習筆記及習題答案C++筆記
- 隨筆記筆記
- C++ Primer!C++的“倚天劍”C++
- 筆記:《C++ Primer 中文版(第5版)》 第1章 開始筆記C++
- 41、C++ Primer 4th筆記,IO庫,格式化IO操作C++筆記
- 15、C++ Primer 4th 筆記,類和資料抽象,友元C++筆記抽象