|
主文件:
#include"cstudent.h"
int test()
{
cstudent stud_1("zhangsan", 'f', 1001, 20);
cstudent stud_2;
stud_2 = stud_1;
}
int main()
{
cstudent::master;//调用static成员变量(函数)
cstudent stud1("zhangsan", 'f', 1001, 20);
cstudent stud2("lisi",'2',2001,10);
test();
return 0;
}
头文件:
#include<iostream>
#include<string.h>
using namespace std;
class cstudent
{
public:
char* name;
char sex;
int num;
int age;
static char master[20];//static函数、变量,在类内声明,在类外初始化
cstudent(char* tname,char tsex,int tnum,int tage);
cstudent();
cstudent& operator=(const cstudent& std);//符号的重载
~cstudent();
};
头文件的定义实现:
#include"cstudent.h"
char cstudent::master[20];
cstudent::cstudent(char* tname,char tsex,int tnum,int tage):sex(tsex),num(tnum),age(tage)
{
name=NULL;
int len=0;
if(name) len=strlen(tname);
if(len>0)
{
name=new char[len+1];
memset(name,0,len+1);
strcpy(name,tname);
}
}
cstudent::cstudent(){}
cstudent::~cstudent()
{
if(name)
{
delete []name;
name=NULL;
}
cout<<"cstudent::~cstudentòÑÖ′DD"<<endl;
}
cstudent& cstudent::operator=(const cstudent& std)//·ûoÅμÄÖØÔØ
{
if (name)
{
delete []name;
name = NULL;
}
int name_len = strlen(std.name) + 1;
name = new char[name_len];
memset(name, 0, name_len);
strcpy(name, std.name);
sex = std.sex;
num = std.num;
age = std.age;
return *this;
}
- name=NULL;
- int len=0;
- if(name) len=strlen(tname);
复制代码
改为
- name = NULL;
- int len = strlen(tname);
复制代码
|
上一篇: 多线程内存池速率多少才及格?下一篇: 大白求助vs工具问题
|