定义对象指针时不执行构造函数吗?对象指针和对象有什么区别?

classobj{public:obj(void){cout<<"Initialization"<<endl;};~obj(void){cout<<"Destroy"<<... class obj
{
public:
obj(void){cout<<"Initialization"<<endl;};
~obj(void){cout<<"Destroy"<<endl;};

void Initialize(void){cout<<"Initialization"<<endl;};
void Destroy(void){cout<<"Destroy"<<endl;};
};

int main(void)
{
obj *a;
a->Initialize();
a->Destroy();
cout<<endl;
obj b;
b.Initialize();
b.Destroy();
}

vc6.0 下的运行结果:
Initialization
Destroy

Initialization
Initialization
Destroy

难道obj *a;没有执行构造函数吗?,a->Initialize(); a->Destroy();能执行,怎么解释?
谢谢大家
展开
 我来答
云汐励事文2742
2008-03-25 · TA获得超过252个赞
知道答主
回答量:547
采纳率:0%
帮助的人:253万
展开全部
obj *a是不执行构造函数的 如果你想让它执行构造函数的话,应该为它分配动态空间。 obj *a=new obj
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式