C++ —— 类的使用
生活随笔
收集整理的這篇文章主要介紹了
C++ —— 类的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Stock 類聲明代碼
知道如何創建類聲明以及實現類的成員函數之后,這里以股票為例,創建了一個 Stock 類的聲明,以及實現 Stock 聲明中的成員函數。
// Stock 類聲明 // source/2.1/stock00.h #ifndef STOCK00_H_ #define STOCK00_H_#include <iostream>class Stock { private:std::string company; // 公司long shares; // 持有的股數double share_value; // 股票實時單價double total_value; // 持有的股票總價// 設置 total_value 的值 // void set_tot() { // total_value = shares * share_value; // } // 內聯函數void set_tot(); public:/*** 股票初始化*/void acquire(const std::string& co, long n, double pr);/*** 購買股票*/void buy(long num, double price);/*** 出售股票*/void sell(long num, double price);/*** 更新股票價格*/void update(double price);/*** 展示股票信息*/void show(); }; // 注意類聲明以分號結尾inline void Stock::set_tot() {total_value = shares * share_value; }#endif // STOCK00_H_ // Stock 成員函數的實現 #include "stock0.h"void Stock::acquire(const std::string &co, long n, double pr) {company = co;if (n < 0) {std::cout << "購買股票的數目無效," << company << " 公司股票數目設置為 0.\n";shares = 0;}else {shares = n;}share_value = pr;// 更新 total_valueset_tot(); }void Stock::buy(long num, double price) {if (num < 0) {std::cout << "購買 " << company << " 公司股票數目異常,購買無效\n";return;}shares += num;share_value = price;set_tot(); }void Stock::sell(long num, double price) {if (num < 0) {std::cout << "出售 " << company << " 公司股票數目異常,出售無效\n";} else if (num > shares) {std::cout << "出售數目多于持有數目\n";} else {shares -= num;share_value = price;set_tot();} }void Stock::update(double price) {share_value = price;set_tot(); }void Stock::show() {std::cout << "Company: " << company << std::endl<< "Shares: " << shares << std::endl<< "Share Price: $" << share_value << std::endl<< "Total Worth: $" << total_value <<std::endl; }Stock 類的使用代碼
知道如何定義類及其方法之后,我們將用上面聲明的 Stock 類來學習下對象的創建與使用。
?
C++ 的目標是使得類與使用基本的內置類型(如 int、char) 盡可能的相同:
- 創建類的對象。可以聲明類的變量;也可以使用 new 為類的對象分配存儲空間,并返回一個地址賦值給對應的指針。
- 對象可以作為函數的參數、返回值。
- 可以將一個對象直接賦值給另一個對象。對于需要深拷貝的類,可以通過重載賦值運算符以及復制構造函數的方式完成。由于深拷貝涉及到類成員動態內存分配,這里暫時不做講解。
- C++ 提供了一些工具用于初始化對象、讓 cin、cout 識別對象,甚至可以在相似的類對象之間進行類型轉換。
雖然要做到這些工作還需要學習一些內容,但是目前已知的類相關的知識已經足以讓我們創建一個簡單的程序了。
#include "stock0.h"int main(void) {// 聲明 Stock 變量Stock sally;// 首次購買 Coke 股票sally.acquire("Coke", 3, 10.4);sally.show();sally.buy(-1, 5);sally.buy(3, 6);sally.show();sally.sell(-1, 3);sally.sell(3, 7);sally.show();sally.sell(7, 9);sally.show(); } // 程序的輸出 Company: Coke Shares: 3 Share Price: $10.4 Total Worth: $31.2 購買 Coke 公司股票數目異常,購買無效 Company: Coke Shares: 6 Share Price: $6 Total Worth: $36 出售 Coke 公司股票數目異常,出售無效 Company: Coke Shares: 3 Share Price: $7 Total Worth: $21 出售數目多于持有數目 Company: Coke Shares: 3 Share Price: $7 Total Worth: $21main() 只是用來測試 Stock 類的設計。當 Stock 類的運行情況與預期的相同后,便可以在其他程序中將 Stock類作為用戶自定義的類型來使用 (只需要在使用 Stock 類的 cpp 文件中加上 #include “stock0.h”)。
?
使用一個新類型時,最關鍵的是了解成員函數的功能,而不必考慮其實現細節。
總結
以上是生活随笔為你收集整理的C++ —— 类的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十位安卓开发者的 17 年总结
- 下一篇: IPCamera WiFi配置方案