2009年3月23日星期一

c++中这两种新建对象的方式的区别

最近有看回C++,学习完JAVA看C++还很有意思。
说说最近看到的。

一个是,java新建类的方法往往都是
class ABC{
private int i;
public void get(){
.......
}
很简单的方法。

而在C++里面,一个是按照标准用
建立A.h头文件
写入
class A{
private:int i;
public:void get();
}
然后在A.ccp具体实现。
当然,其实也可以在一起实现,
比如
class A{
private:int i;
public:
void get(){
....
}
直接写在cpp中,不过这样在头文件中还是要做说明。


ok,再说说对象生成吧,
JAVA中
A a不过是声明这个对象,但是没有分配空间,必须要new A()才算实现。

而在C++中,A a(),就是直接这个是在栈上创建一个类对象 程序退出其作用域后自动调用类的析构函数。

而C++另一个生成方式或许和JAVA类似,就是A *a=new A().这样通过指针来指向分配的空间。
然后可以delete,调用析构函数解决。
如果在没有垃圾回收的情况下,delete容易内存溢出,不过在VS2005里面OK,毕竟有面向微软的垃圾回收虚拟机。

个人感觉学完JAVA再看C++毕竟上手容易,个人感觉。。。
阅读全文