我正在學習如何制作類,我想防止我的用戶在沒有提供變數的情況下創建一個物件。問題是,我不知道如何通程序式來實作這一目的。
class KoalaNurse {
public:
int id; //為了創建一個新的物件,我需要提供的var,如果不提供,就不會創建這個物件。
void giveDrug(std::string gato, SickKoala *patient) {
patient->takeDrug(gato)。
}
~KoalaNurse() {
std::cout << "Nurse" << id << " 。終于可以休息了!" << std::endl;
}
};
感謝您的幫助!
uj5u.com熱心網友回復:
你需要定義你自己的建構式,以使編譯器不創建默認的建構式。
KoalaNurse (int some_value)
{
//你的代碼。
};
另一個選擇是使用關鍵字delete,以防止創建默認建構式:
KoalaNurse() = delete;
uj5u.com熱心網友回復:
在這樣的情況下,你想提供一個用戶定義的建構式。
class KoalaNurse {
public:
explicit KoalaNurse( int id )
: id_{ id }
{ }
private:
int id_;
};
int main( ) {
考拉護士Nurse{ 10 }。
通過建構式,為了實體化你的類,你必須提供一個id。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/310474.html
標籤:
上一篇:拉威爾。在陣列中更新多個檔案
下一篇:如何呼叫父類的實體方法?
