#include <iostream>
using namespace std;
class Tree
{
public :
Tree(int height) //this->
{
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 ;
tree= new Tree (100);//堆对象
tree-> display();
delete tree;
}
using namespace std;
class Tree
{
public :
Tree(int height) //this->
{
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 ;
tree= new Tree (100);//堆对象
tree-> display();
delete tree;
}
运行结果:
tree object is
creating
this tree is 100 meters high
tree object is deleting
this tree is 100 meters high
tree object is deleting
Tree 是定义的类
*tree 是指向这个类型的一个指针,但它现在是空的
new Tree(100) 是以堆对象建立一个类的实例,参数100初始化它,并让tree指向它
最后,用new建立的堆对象,当然也要用回收堆对象的delete清除,释放它占用的空间。
注意:Tree* tree = new Tree (100)调用下面的构造函数:
Tree(int height) //this->
{
cout<<"tree object is creating"<< endl;
this->height = height;
}
{
cout<<"tree object is creating"<< endl;
this->height = height;
}