每日一題 46 不能被繼承的類

2021-06-16 17:19:38 字數 1209 閱讀 4227

題目來自劍指offer

使用c++設計乙個不能被繼承的類,

思路一:

思想:建構函式和析構函式為私有 + 新增倆方法

方法:把建構函式和析構函式設定為私有函式 + 新增倆方法建立物件和銷毀物件

原因:(1)把建構函式和析構函式設定為私有函式 :防止子類呼叫建構函式函式和析構函式,防止繼承

(2)新增倆方法建立物件和銷毀物件:為了不影響自己建立和銷毀物件,就通過靜態方法建立和銷毀物件。

**:

class sealclass

~sealclass(){}

};sealclass* sealclass::getinstance()

sealclass(int ndata);

~sealclass(){}

private:

int m_ndata;

};class drived : public sealclass

~drived(){}

};sealclass* sealclass::getinstance(int ndata)

~base(){}

};class sealclass : virtual public base

~sealclass(){}

};

測試**:

#include #include using namespace std;

class sealclass;

class base

~base(){}

};class sealclass : virtual public base

~sealclass(){}

};//class drived : public sealclass

//// ~drived(){}

//};

int main()

使用模板類:

原因:只有想讓某個類不能派生物件,就可以從該類繼承。

templateclass base

~base(){}

};class sealclass : virtual public base

~sealclass(){}

};

每日一題 46

第四十六題 定義乙個3行3列的二維陣列,從鍵盤輸入9個數的值。輸出其中最大值和最小值及其所在的行列座標。include stdio.h void main 運算 max arr 0 0 min arr 0 0 for i 0 i 3 i for j 0 j 3 j if arr i j 輸出 pri...

每日一題 46 合併果子

思路在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過 n 1 次合併之後,就只剩下一堆了。多多在合併果子時總共消耗的體力等於每次合併所耗體...

每日一題 46插入區間

給出乙個無重疊的 按照區間起始端點排序的區間列表。在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊 如果有必要的話,可以合併區間 示例 1 輸入 intervals 1,3 6,9 newinterval 2 5 輸出 1 5 6,9 示例 2 輸入 intervals 1,2 3,...