我刚刚开始使用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 ++中实例化类的所有不同方法的详尽列表,以及它们之间的区别?如果我使用的术语不对,通过“实例化”,我的意思是获取一个变量名称,可以使用点或箭头表示法调用方法。
答案 0 :(得分:1)
MyClass obj();
实际上是函数obj
的声明,它返回MyClass
个对象。
MyClass* obj = new Myclass();
在堆上创建MyClass
对象,您应该稍后释放此内存。
MyClass obj;
通过默认构造函数创建MyClass对象。
MyClass obj = MyClass();
通过copy constrctor创建MyClass对象。
您还可以使用MyClass obj{};
创建零初始化MyClass
对象,或者调用初始化列表构造函数(如果有)。