请教各位网友:问个C++中类的对象的问题: (0分)

  • 主题发起人 主题发起人 netbug
  • 开始时间 开始时间
N

netbug

Unregistered / Unconfirmed
GUEST, unregistred user!
请看:
#include<iostream.h>
class rect
{
public:
int leftx;
int topy;
public:
void draw()
{
cout《leftx+topy《endl;
};
};

void main()
{

rect r1;
r1.leftx=2;
r1.topy=22;
r1.draw();
}

在上例中编译能通过并能运行,但在上例中,我在类中并没有
定义构造函数,为何可以通过编译?我记得在Delphi中,一定
要有个构造方法,只有用构造方法才能创建个类的实例--对象。
在C++中如没有构造函数,那系统是如何为对象分配内存的?
是不是说在C++中有默认的构造函数?谢谢。
 
有什么问题?
 
void draw() {
cout《leftx+topy《endl

};
^^^
把;去掉

C++ 中是有缺省的构造函数
 
这个问题根本就和构造函数没有什么关系。但是C++是支持缺省构造函数的。
这个问题的关键在于,Delphi中类的变量默认是一个指针,使用时必须使用Create这样的构
造函数对其来分配内存并对其进行构造。
而C++则不同,C++允许有直接的堆栈类实例,即可不必非得使用内存函数来为对象分配内存
以创建对象实例的方法来创建对象。
象rect r1这样的定义,r1是一个局部变量,随着main函数( 也可以是其它的函数)的结束
而被Destory掉。
 
的确是C++有自己的默认的构造和析构函数!
 
接受答案了.
 
后退
顶部