C++ 实例化对象的问题

[复制链接]
查看11 | 回复2 | 2010-11-10 22:10:27 | 显示全部楼层 |阅读模式
使用一个类有时候只用了一个指针的形式: Class * MyClass(且不需 delete) ,而有的时候需要使用
Class * MyClass;
MyClass = new Class;(需要delete)
或 ClassMyClass = new Class;
这两种方式都能实例化一个类吗?有什么区别没?
可能我的问题有点模糊。。。。我发现有些时候只需要使用 Class* MyClass; 在程序中就可以使用“->”的方式访问类的成员,重头到尾都没有使用 “new”来申请空间?? 也没有用“delete”来释放内存?
为什么呢?按理说这只是指向了一个类的指针.........

回复

使用道具 举报

千问 | 2010-11-10 22:10:27 | 显示全部楼层
一样的,没有区别,都要deleteClass * MyClass = new Class;Class * MyClass;MyClass = new Class; 有可能*************使用static函数来初始化,用new来申请空间,再用static函数来释放内存。
回复

使用道具 举报

千问 | 2010-11-10 22:10:27 | 显示全部楼层
- -!你有没有搞错ClassMyClass = new Class;这样可以编译得过咩类型都不一样= =!我大概明你说什么Class*MyClass = new Class;这样是在堆申请空间 并实例化必须delete如果一般会在栈空间申请 然后实例化 这时是编译器会自动清除区别在于 它们所处的位置是不一样的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行