还是关于构造函数的问题!
ztwz 2004-09-26 04:24:33 #include <iostream>
#include <stdlib.h>
using namespace std;
class student
{
public:
/* student() //这个构造函数是我加上去的,下面fn()里的student s1;就是调用他才对嘛??但是会出错,为什么呀!
{
cout<<"这是默认的嘛"<<endl;
}*/
student(char *pname="no name")/*如果把上面的注释了程序fn()里的student s1;就调用他,但这个函数是用参数的呀,而student s1;是没有参数的嘛。为什么程序会调用这个函数而不是上面的哪个,谢谢!!*/
{
cout<<"create on student\n";
strcpy(name,pname);
num++;
cout<<num<<endl;
}
~student()
{
cout<<"destruct on student\n";
num--;
cout<<num<<endl;
}
static int number()
{
return num;
}
protected:
static int num;
char name[40];
};
int student::num=0;
void fn()
{
student s1;
student s2;
cout<<student::number()<<endl;
}
int main(int argc, char *argv[])
{
fn();
cout<<student::number()<<endl;
system("PAUSE");
return 0;
}