请问下C++中结构体这种写法是什么意思

良人当归 2018-02-08 03:58:49
struct BinaryTreeNode
{
T _data;
BinaryTreeNode<T>* _leftchild;
BinaryTreeNode<T>* _rightchild;

BinaryTreeNode(const T& x)//构造函数
:_data(x)
, _leftchild(NULL)
, _rightchild(NULL)
{}
};
...全文
451 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
良人当归 2018-02-08
  • 打赏
  • 举报
回复
引用 2 楼 sdghchj 的回复:
顶楼写法是在初始化列表中初始化成员变量,是建议的用法,当然肯定是效率高的写法。 你1楼的写法是在构造函数体内给成员变量赋值,而不是给成员变量初始化,即便是你没在初始化列表上对成员变量进行初始化,编译器也会在该处对成员变量进行初始化。 总结地说:上面的写法只需要对成员变量进行一次初始化,下面的写法是先对成员变量进行默认初始化,然后再进行赋值。
懂了懂了,谢谢大神
sdghchj 2018-02-08
  • 打赏
  • 举报
回复
顶楼写法是在初始化列表中初始化成员变量,是建议的用法,当然肯定是效率高的写法。 你1楼的写法是在构造函数体内给成员变量赋值,而不是给成员变量初始化,即便是你没在初始化列表上对成员变量进行初始化,编译器也会在该处对成员变量进行初始化。 总结地说:上面的写法只需要对成员变量进行一次初始化,下面的写法是先对成员变量进行默认初始化,然后再进行赋值。
良人当归 2018-02-08
  • 打赏
  • 举报
回复
上面的写法和下面这种有什么差别呢,还是说意思一样写法不同而已
BinaryTreeNode(const T& x)//构造函数
{
_data = x;
_leftchild = NULL;
_rightchild = NULL;
}

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧