我猜你要问的是在constructor内对成员赋值的两种做法
1. 是使用initializer list
2. 在ctor内使用assignment
基本上使用initializer list会有较高的效率
因为在建构一个物件时 其成员的constructor也会被呼叫
而使用initializer list可以在成员的constructor被呼叫之时即赋值
如果使用2的方法 compiler做的事情是对成员呼叫其contructor 然后又再assign新值
因此2的方法效率会较低
P.S. 这个讨论的范围是该成员是一个class 若成员均是primitive type
那么1跟2的做法效率就差不多
※ 引述《ab18282099 (poppopjack)》之铭言:
: 开发平台(Platform): (Ex: Win10, Linux, ...)
: Win10
: 编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
: VC++
: 额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
: 问题(Question):
: 小弟有以下疑惑:
: C++的constructor可以用assignment和initializer两种写法,不知道有没有大神能够解释或是说明什么情况用initializer较佳或assignment较佳,感谢!
: 喂入的资料(Input):
: 预期的正确结果(Expected Output):
: 错误结果(Wrong Output):
: 程式码(Code):(请善用置底文网页, 记得排版)
: 补充说明(Supplement):
: