如何初始化類陣列成員變數?
visual studio code說:
沒有匹配函式呼叫'Node::Node()' gcc line 12 col 9
const int N = 100;
struct Node {
int val, ch[2];
/**
void init(int _val) {
this->val = _val, this->ch[0] = this->ch[1] = 0;
}*/
Node (int _val): val(_val) {
this->ch[0] = this->ch[1] = 0;
}
} tree[N]; // <--------- this is line 12
int main() {
int a;
cin >> a;
tree[0] = Node(a);
}
uj5u.com熱心網友回復:
問題是,當您撰寫時,您tree[N]正在創建一個陣列,其元素將是默認構造的,但由于您的 class 沒有默認建構式Node,我們會收到上述錯誤。
此外,Node沒有默認建構式,因為您提供了轉換建構式Node::Node(int),因此編譯器不會自動合成默認 ctor Note::Node()。
要解決這個問題,您可以為您的班級添加一個默認 ctor Node::Node()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/513375.html
標籤:C c 11
