对于一个只有带参数构造函数的结构体来说:
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
编译器不生成默认构造函数,也就是说,必须需要一个int数才能构造一个TreeNode实例。
当出现成员变量只有带参数构造函数时:
struct MyTreeNode{
TreeNode t;
int sumL;
int sumR;
MyTreeNode(int x):t(x),sumL(0),sumR(0){}
};
必须采用列表初始化,如上代码。
本文探讨了C++中带有参数构造函数的结构体如何工作,特别是当结构体成员自身也具有带参数构造函数时,如何正确地进行初始化。通过具体示例说明了列表初始化的重要性。
9727

被折叠的 条评论
为什么被折叠?



