【C++】類初探常量成員函式與建構函式初始值列表
標頭檔案mycpp.h
#include <iostream>
#include <iostream>
class Sales_data{
//友元函式範圍申明
friend std::istream &read(std::istream &is,Sales_data &item);
friend std::ostream &print(std::ostream &os,Sales_data &item);
public:
//建構函式會覆蓋內建初始化的值,:到{表示一個列表,用於初始化成員變數,叫做建構函式初始值列表
Sales_data(const std::string &s="",const unsigned n=0,
const double p=0.0):bookNo(s),units_sold(n),revenue(p*n){};
//物件是一個常量,返回時必須是個const,例如:例項化一個常量物件const Sales_data const_item;
std::string isbn() const;
//將一個Sales_data物件加到另一個Sales_data物件上面
Sales_data &combine(const Sales_data &);
//求本書的銷量內的平均價
double avg_price() const;
private:
//內建初始化則為空字串,因為不是基本型別,指標和引用等複合型別
std::string bookNo;
//基本型別,內建初始化未定義
unsigned int units_sold;
double revenue;
};
//友元函式的宣告;注意在內中的宣告只是表示一個範圍,表示該友元函式可以訪問該類的物件
std::istream &read(std::istream &is,Sales_data &item);
std::ostream &print(std::ostream &os,Sales_data &item); 原始檔mycpp.cpp #include <iostream>#include "mycpp.h"std::string Sales_data::isbn() const{return this->bookNo;}double Sales_data::avg_price() const{if(units_sold){return revenue/units_sold;}
else{return 0;}
}Sales_data & Sales_data::combine(const Sales_data &rha){units_sold+=rha.units_sold;revenue+=rha.revenue;//解引用得到該物件return *this;}//讀入一個物件
std::istream & read(std::istream &is,Sales_data &item){double price=0;is>>item.bookNo>>item.units_sold>>price;return is;}//輸出一個物件
std::ostream & print(std::ostream &os,Sales_data &item){os<<item.isbn()<<" "<<item.units_sold<<" "<<item.revenue<<" "<<item.avg_price();return os;}主函式
int main(){Sales_data totals("xangxing_2",3,12);//例項化一個常量物件const Sales_data total;read(std::cin,totals);//錯誤,常量物件初始化後不能修改//read(std::cin,total);print(std::cout,totals)<<std::endl;}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30221425/viewspace-2142919/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C++(常量成員函式)C++函式
- C++ 類建構函式和解構函式C++函式
- 【C++】初始化列表建構函式VS普通建構函式C++函式
- C++ 類建構函式初始化列表介紹C++函式
- C++ 建構函式和解構函式C++函式
- JS 建構函式與類JS函式
- C++語言之結構體、類、建構函式、拷貝建構函式C++結構體函式
- 類的建構函式和解構函式函式
- 建構函式與解構函式函式
- C++ 類成員函式C++函式
- C++——建構函式之初始化列表C++函式
- 函式指標使用c++類成員函式函式指標C++
- 建構函式與解構函式是否可以丟擲異常函式
- 【C++】建構函式C++函式
- C++建構函式C++函式
- C++ 建構函式 explicit 關鍵字 成員初始化列表C++函式
- C++入門記-建構函式和解構函式C++函式
- [C++]顯示呼叫建構函式和解構函式C++函式
- C++:類的成員函式C++函式
- C/C++——建構函式、複製建構函式和解構函式的執行時刻C++函式
- C++中建構函式,拷貝建構函式和賦值函式的詳解C++函式賦值
- C++:建構函式的分類和呼叫C++函式
- 《高質量C++/C程式設計指南》第9章:類的建構函式、解構函式與賦值函式C++C程式程式設計函式賦值
- PHP筆記:建構函式與解構函式PHP筆記函式
- 預設建構函式、引數化建構函式、複製建構函式、解構函式函式
- C++中建構函式後的初始化列表C++函式
- 高質量C++/C程式設計指南(第9章 類的建構函式、解構函式與賦值函式) (轉)C++C程式程式設計函式賦值
- 建構函式與普通函式的區別函式
- C++建構函式解構函式的執行過程C++函式
- C++學習筆記-----類和建構函式C++筆記函式
- 關於建構函式與解構函式的分享函式
- C++複製建構函式C++函式
- c++建構函式詳解C++函式
- C++程式設計學習筆記:2 類和物件初探 內聯成員函式和過載成員函式C++程式設計筆記物件函式
- C++再議建構函式及複製建構函式深度複製C++函式
- C++ Daily 《3》----建構函式可否是虛擬函式C++AI函式
- C++建構函式和解構函式呼叫虛擬函式時使用靜態聯編C++函式
- PHP 手冊 (類與物件) 學習筆記五:建構函式和解構函式PHP物件筆記函式