C++中new的为什么是这么用的?

来源:百度知道 编辑:UC知道 时间:2024/05/17 17:41:50
#include <iostream.h>
class Tree
{
public:
Tree(int height)
{
cout<<"tree object is creating"<<endl;
this->height = height;
}
~Tree()
{
cout<<"tree object is deleting"<<endl;
}
void display()
{
cout<<"this tree is "<<height<<" meters high"<<endl;
}
private:
int height;
};
void main()
{
Tree* tree = new Tree (100);//**********
tree->display();
delete tree;
}
打上"*"的这一句我看不太明白.谁能告诉我这句是啥意思啊??谢谢了!!
那这个是不是就相当于类似于在定义一个变量的时候同时给其赋值

就像int i=10;

堆对象,都这么用。

Tree 是定义的类
*tree 是指向这个类型的一个指针,但它现在是空的

new Tree(100) 是以堆对象建立一个类的实例,参数100初始化它,并让tree指向它

注意:大小写的区别,Tree与tree是不同的

最后,用new建立的堆对象,当然也要用回收堆对象的delete清除,释放它占用的空间。

Tree* tree = new Tree (100);
调用下面的构造函数:
Tree(int height)
{
cout<<"tree object is creating"<<endl;
this->height = height;
}