成员初始化列表的问题

garkfbiafiaala 2014-04-15 10:35:16
使用成员初始化列表时,如下
vintageport::vintageport(const char *br,int b,const char*nn,int y):port(br, ,b)
我有一个参数不需要初始化(如上),但是上面的代码通不过编译,有没有什么办法可以不修改初始化的顺序,使得上面代码能通过编译
...全文
149 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
漂浮一生 2014-04-16
  • 打赏
  • 举报
回复
使用参数化表
vintageport::vintageport(const char *br,int b,const char*nn,int y):Xx(br), Xx(b){}
Xx表示你所声明的数据成员的
漂浮一生 2014-04-16
  • 打赏
  • 举报
回复
使用参数化表进行初始化,就行了
引用 6 楼 buyong 的回复:
vintageport::vintageport(const char *br,int b,const char*nn,int y):port(br, ,b), nn(NULL), y(0)
你这里还是全部初始化了,只是你把nn初始化为空,y初始化为0
xiaohuh421 2014-04-16
  • 打赏
  • 举报
回复
不可能完成的任务. 参数不可跳过, 只能写一默认参数. 在Debug时, 不初始化就是0xCDCDCDCD这样的数据, 你可以模拟. Release时, 不初始化的数据, 默认就是0, 你也可以模拟.
buyong 2014-04-16
  • 打赏
  • 举报
回复
vintageport::vintageport(const char *br,int b,const char*nn,int y):port(br, ,b), nn(NULL), y(0)
lionghua 2014-04-16
  • 打赏
  • 举报
回复
那就减少参数的个数
derekrose 2014-04-15
  • 打赏
  • 举报
回复
为什么会有不需要初始化的数据
unituniverse2 2014-04-15
  • 打赏
  • 举报
回复
谁说的“不需要”? 如果你是想做到某个成员需要初始化而你想故意绕过的话,编译器是不会允许你这么干的
turing-complete 2014-04-15
  • 打赏
  • 举报
回复
初始化顺序,必须和成员在类中声明顺序一致,如果不改初始化顺序,那么您就得修改声明顺序。

65,207

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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