#include "stdio.h"
class tree{
int size;
public:
tree(int size);
~tree();
void grow(int year);
void printSize();
};
tree::tree(int size)
{
size = size;
}
tree::~tree(){
puts("inside tree destructor\n");
printSize();
}
void tree::grow(int year)
{
size += year;
}
void tree::printSize()
{
printf("tree height is %d\n", size);
}
main(){
puts("before opening brace");
{
tree t(12);
puts("after tree creation");
t.printSize();
t.grow(4);
puts("before closing brace");
}
puts("after closing brace");
}
输出时size显示一下结果
-*********** 和 -***********
为什么?我在2000和vc6下运行的
參考答案:你的构造函数写错了
应该是
tree::tree(int size)
{
this->size = size;
}
不写this的话,你声明类内部变量的时候换个名字就行了
比如int _size;
这样构造函数就是:
你的构造函数写错了
应该是
tree::tree(int size)
{
_size = size;
}