首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++定义一个对象有几种形式?该如何处理

2012-06-14 
C++定义一个对象有几种形式?一个类A,如果要定义一个对象,是不是可以用以下几种形式:class A{public:A() {c

C++定义一个对象有几种形式?
一个类A,如果要定义一个对象,是不是可以用以下几种形式:
class A
{
public:
A() {cout<<"constructor1";}
A(int x) {cout<<"constructor2";}
};

1. A a;  
2. A a(1);  
3. A *a=new A; //equal A *a=new A()
4. A *a=new A(1);
5. A a=10;

A a()这个应该只是一个声明,没有定义,不会调用构造函数。
A a=new A()这个应该是java中的定义形式把。

请指正.

[解决办法]
A a()是一个函数声明,不是对象定义。

不要说 A a= new A()是java中的定义形式,C++出现可比java早多了,是java学C++的
[解决办法]
A a();是声明一个返回A类对象的无参函数;
A a = new A();这个在C++语言中一般是不对的,除非A类有一个non-explicit的参数类型为A*的构造函数。

热点排行