我刚开始学习C++,先做了一些Java和大量的Python。在这两种语言中,只有一种方法可以创建MyClass类型的新变量,在Java语言中是MyClass obj = new MyClass(),在Python语言中是obj = MyClass()。
在C++中,我在示例代码中看到了各种不同的语法,例如:
MyClass* obj = new Myclass();
MyClass obj();
MyClass obj = MyClass();
MyClass obj;我在哪里可以获得在C++中实例化类的所有不同方法的详尽列表,以及它们之间的差异?如果我用错了术语,我所说的“实例化”是指获得一个变量名,在该变量名上可以使用点符号或箭头符号调用方法。
发布于 2018-04-02 20:45:14
MyClass obj();实际上是一个函数obj的声明,该函数返回MyClass对象。
MyClass* obj = new Myclass();在堆上创建MyClass对象,您应该稍后释放此内存。
MyClass obj;通过默认构造函数创建MyClass对象。
MyClass obj = MyClass();通过复制构造器创建MyClass对象。
您还可以使用MyClass obj{};来创建零初始化的MyClass对象,或者调用初始化器列表构造函数(如果有)。
https://stackoverflow.com/questions/49611419
复制相似问题