用于创建类实例的 C++ 语法

标签 c++ class c++11 instance

我一直在研究如何在 C++ 中创建类的实例。似乎有几种方法可以做到这一点:

ClassExample classExample1;
ClassExample classExample2();
ClassExample classExample3(void);
ClassExample classExample4 = ClassExample();

1 和 4 调用默认构造函数。当我使用 2 和 3 时,我似乎无法引用变量并且它们没有被初始化。在调试器中,它们被跳过。为什么是这样?这些是一样的吗?有什么区别?有首选方案吗?

当我们要传递参数时,有两种方法:

ClassExample classExample1(true, 1, "");
ClassExample classExample2 = ClassExample(true, 1, "");

再说一次,有区别吗?什么是首选?

更新

C++ 11 也引入了这种形式的初始化:

ClassExample classExample2{ };

相当于:

ClassExample classExample2();

最佳答案

没有首选选项的问题

ClassExample classExample2();

ClassExample classExample3(void);

声明一个返回ClassExample对象的函数

关于用于创建类实例的 C++ 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24509818/

相关文章:

objective-c - Objective C 类引用作为属性

c++ - 为每次 c++ 创建一个障碍

C++ 序列化到 Mongodb

c++ - 反向查找指向 cstring 中第 n 次出现的字符的指针

c++ - OpenGL 编译问题

ios - 如何将方法中的 SKSpriteNode 添加到另一个类中?

c++ - 使用自动变量打印 vector 的内容

c++ - 命名空间内与类内的函数作用域

c++ - Qt Loading 消息应位于父窗口小部件的顶部并居中

c++ - 在创建对象 C++ 之前设置静态变量