c++中创建对象的几种方法
来源:互联网 发布:数据归一化 实例 编辑:程序博客网 时间:2024/05/16 18:37
2011-05-07 11:58
c++中类的创建对象的方法有两种
首先,只有创建了类的对象,才能调用类中的动态的成员(包括成员变量和成员函数),其创建对象的方法有两种:一种直接用类名创建对象,如有一个类为:
class CAT
{public:
a();
b();
...
};
void main ()
{
CAT cat;
cat.a();
...
return 0;
}
另一种方法是用new的方法
class CAT
{public:
a();
b();
...
};
void main ()
{
CAT *cat=new a();
cat->a();
...
return 0;
}
两种方法的区别,引用别人的贴来加以解释:
问:
创建对象时,
> > 直接用类名定义的对象 和 用 new 出来的对象有什么区别啊?new出来的需要delete,不用new的就不需要吗?
其他的还有什么区别?
> > 如果定义了一个 typedef CArray <CString,CString> strArray;
要向strArray的对象中添加元素,并希望 return strArray 的对象,
应该如何定义strArray的对象呢?
必须要 strArray* obj = new strArray(); 吗?
这样能return obj 吗?
用后也需要delete吧?
答:
不用new,则生成的对象保存在栈区,用new生成的对象在堆区,栈区比较小,堆区比较大,很多临时变量什么的和函数调用什么的都要用到栈区,所以为了不占用太多的栈区,大点儿的程序生成对象都在堆区。在栈区不属于用户管理的范围,生成对象在程序结束后自动调用系统喜购函数析构掉,没有内存泄漏,而堆区属于用户管理范围,如果你用了new,则堆区就会申请一块儿放下你的对象的内存,如果你不显式调用delete,程序运行完以后那块儿内存还是属于这个对象,这块儿内存其他的程序就不能再访问了,如果你程序运行次数比较多或者生成对象比较多,则会占用越来越多的内存,最后导致没有内存可以使用,系统崩溃!
- java中创建对象的几种方法的总结
- Javascript中创建对象的几种方法
- c++中创建对象的几种方法
- javascript中创建对象的几种方法总结
- java中创建对象的几种方法
- js中创建对象的几种方法
- JavaScript中创建对象的几种方法
- java中创建对象的几种方法和clone
- java中创建对象的几种方法
- JS中创建对象的几种常用方法
- java中创建对象的几种方法
- js创建对象的几种方法
- js创建对象的几种方法
- 几种创建js对象的方法
- JS创建对象的几种方法
- JS创建对象的几种方法
- JS创建对象的几种方法
- JS创建对象的几种方法
- [转]microsoft office project使用
- 牛人语录(马云)都是真理吗?
- `uint32_t' undeclared here
- alpha通道
- ImportError: No module named visa
- c++中创建对象的几种方法
- Myeclipse8.6中安装SVN插件
- Android 通过触摸放大图片之后还原
- IIS7 动态文件压缩模块安装及配置
- db link的查看创建与删除
- iOS之NSBundle使用
- Oracle10g数据库的完全卸载:
- jquery的form插件的使用
- 王老师讲解:SQL Server 2005数据库nolock的使用【来自Aisino_BBS】