Muh*_*eed 3 c++ class instance c++11
我一直在研究如何在C++中创建一个类的实例.似乎有几种方法可以做到这一点:
ClassExample classExample1;
ClassExample classExample2();
ClassExample classExample3(void);
ClassExample classExample4 = ClassExample();
Run Code Online (Sandbox Code Playgroud)
1和4调用默认构造函数.当我使用2和3时,我似乎无法引用变量并且它们未初始化.在调试器中,它们被逐步调整.为什么是这样?这些都一样吗?有什么不同?有首选吗?
当我们有参数传递时,有两种方法可以做到这一点:
ClassExample classExample1(true, 1, "");
ClassExample classExample2 = ClassExample(true, 1, "");
Run Code Online (Sandbox Code Playgroud)
再说一次,有区别吗?什么是首选方案?
UPDATE
C++ 11还引入了这种初始化形式:
ClassExample classExample2{ };
Run Code Online (Sandbox Code Playgroud)
这是以下的平等:
ClassExample classExample2();
Run Code Online (Sandbox Code Playgroud)
没有首选方案的问题
ClassExample classExample2();
和
ClassExample classExample3(void);
声明一个返回ClassExample对象的函数
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |