首頁  >  文章  >  後端開發  >  C++靜態成員與常成員的使用

C++靜態成員與常成員的使用

伊谢尔伦
伊谢尔伦原創
2016-11-21 11:48:462160瀏覽

1、 實驗目的 
(1)學習靜態成員的使用 
(2)學習常成員的使用 
(3)掌握靜態資料成員與常資料成員的初始化 
2、實驗內容 
(1)某商店經銷一種貨物,貨物成箱購進,成箱賣出,購進和賣出時以重量為單位,各箱的重量不一樣,因此,商店需要記錄下目前庫存的貨物的總重量,現在要求設計一個Goods類別並使用靜態成員來模擬商店貨物購買和賣出的情況; 
(2)為上面的Goods類別添加一個常資料成員(貨物名稱),並對貨物名稱進行初始化; 
(3)將前面已定義的某些成員函數改寫為常成員函數,觀察是否該類別中所有的成員函數是否可設定為常成員函數。

3、實驗步驟 
(1)加入一個頭檔Goods.h來定義Goods類別

#include<iostream>using namespace std;class Goods
{public:
    Goods(int inBox, double inWeight);
    ~Goods();    void Sell(int outBox, double outWeight);    void print();private:    int Box;    double weight;    static int totalBox;    static double totalWeight;
};

Goods::Goods(int inBox, double inWeight)
{
    Box = inBox;
    totalWeight = inWeight;
    totalBox = totalBox + inBox;
    totalWeight = totalWeight = inWeight;
}void Goods::Sell(int outBox, double outWeight) {
    totalBox = totalBox - outBox;
    totalWeight = totalWeight - outWeight;
}void Goods::print() {    cout << "当前货物总箱数为:" << totalBox << "箱" << endl;    cout << "当前货物总重量为:" << totalWeight << "kg" << endl;
}
Goods::~Goods()
{
}int Goods::totalBox = 0;double Goods::totalWeight = 0.0;

(2)增加一個原始檔Goods.cpp來實現成員函數。 
(3)在主程式中定義若干個Goods類別的對象,模擬進貨與賣出的過程。查看運行結果。

#include"Goods.h"int main()
{
    Goods gd(5, 200);
    gd.Sell(2, 50);
    gd.print();
    getchar();    return 0;
}

C++靜態成員與常成員的使用

(4)為Goods類添加一個常數據成員const char * name來表示貨物名稱,改寫構造函數及主程序的調用,在構造函數的成員初始化列表中對貨物名稱賦初值。重新編譯,觀察運行結果。 

C++靜態成員與常成員的使用

(5)將前面已定義的某些成員函數改寫為常成員函數,觀察是否該類別中所有的成員函數是否都可設定為常成員函數。

C++靜態成員與常成員的使用

常資料成員不能更新物件的資料成員,也不能呼叫該類別中的普通成員函數。在常成員函數中絕對不會更新資料成員的值。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn