我在學加法運算子過載,我在類person裡建了乙個返回型別為類person的運算子過載的函式,在這個函式裡我建了個物件temp;
我想實現 :物件p1+物件p2
但是報錯了,錯誤為:類 "person" 不存在預設建構函式
#includeusing namespace std;
class person ;
person operator+(const person& p)
person(int age_a, int age_b)
public:
int age_a;
int age_b;
};void test()
int main()
解決方法:在person類中先建立個無參的建構函式型別;
有了這個型別你才能建立這種型別的物件;
#include using namespace std;
class person ;
person operator+(person& p)
int m_a;
int m_b;
};void test()
int main()
後來我發現,下面**,沒有為了temp而寫無參建構函式啊,這也是可以的,為什麼?
原來是:圖一無參建構函式沒寫,只寫了有參建構函式,系統也不給你無參建構函式了,所以temp居無定所。
2021.4.18:
或者寫個有預設引數值的建構函式,這時可以不寫出預設的建構函式了;
2021.8.8:
也可以使用"=default"來解決這個問題:
如果程式中已定義建構函式,預設情況下,編譯器就不再隱含生成預設建構函式。如果此時依然希望編譯器隱含生成預設建構函式,可以使用"=default"。
class person
int m_a;
int m_b;
};
絕對值函式的導數不存在
絕對值函式的導數不存在 其實之前看文章的時候已經看過這個知識點了,最近在看神經網路的時候又涉及到這個知識點了,但是已經忘了,所以只好再回頭看看,其實這就是只看不用的後果,印象不深刻。其實要想證明乙個函式是否有導數可以使用導數的定義,看看它的左極限和右極限是否相等就行了。每回需要證明乙個極限是否存在時...
關於npm v提示命令不存在問題解決
一 建議解除安裝後重新安裝 1.解除安裝 yum remove nodejs npm y2.刪除相關檔案 usr local lib 下的node和node modules資料夾 rm rf usr local lib node usr local include下的node和node module...
關於npm v提示命令不存在問題解決
一 建議解除安裝後重新安裝 1.解除安裝 yum remove nodejs npm y 2.刪除相關檔案 usr local lib 下的node和node modules資料夾 rm rf usr local lib node usr local include下的node和node modul...