# include <iostream>
# include <string.h>
using namespace std; class Name // 名字类
{
public:
Name(char * pName)
{
char * p = NULL;
char space[] = " ";
char * token;
char * str[3];
int i=0;
for (token = strtok(pName, space); token != NULL; token = strtok(NULL, space),i++)
{ // strtok 函数返回一个字符串指针 传值的时候不能传常量
str[i]=token;
}
strcpy(FiName, str[0]);
strcpy(GiName, str[1]); /*p = strtok(pName, space);
strcpy(FiName, p);
p = strtok(NULL, space);
strcpy(GiName, p);*/ //从for循环往下也可以写成注释的形式 只是for循环有时候比这种形式常用
cout<<FiName<<GiName<<endl;
}
~Name()
{
cout<<"~Name"<<endl;
}
protected:
char FiName[20];
char GiName[20];
}; class Employee
{
public:
Employee::Employee(char * pName, char * pAddress, int id):name(pName)
{
value = id; // 给邮编id赋值
// 给address 赋值
strncpy(address, pAddress, sizeof(address));
address[sizeof(address)-1] = '\0';
}
~Employee(); // 声明析构函数
Display1(); // 输出每个成员函数 protected:
Name name;
char address[80];
int value;
};
Employee::~Employee()
{
cout<<"~Employee"<<endl;
} Employee::Display1() // 输出
{
cout<<address<<endl
<<value<<endl;
}
void main()
{
char a[] = "张 三"; // 注意 这个人名的传递方法。 如果直接传值Employee b(张三) 姓名存储
Employee b(a,"未央,西安,陕西",710010); //在常量区 就不能使用 strtok函数分割
/*如果我非得这样定义一个类对象 Employee("张 三", 西安,陕西",710010); 构造函数应该怎样去写*/ b.Display1();
}
# include <string.h>
using namespace std; class Name // 名字类
{
public:
Name(char * pName)
{
char * p = NULL;
char space[] = " ";
char * token;
char * str[3];
int i=0;
for (token = strtok(pName, space); token != NULL; token = strtok(NULL, space),i++)
{ // strtok 函数返回一个字符串指针 传值的时候不能传常量
str[i]=token;
}
strcpy(FiName, str[0]);
strcpy(GiName, str[1]); /*p = strtok(pName, space);
strcpy(FiName, p);
p = strtok(NULL, space);
strcpy(GiName, p);*/ //从for循环往下也可以写成注释的形式 只是for循环有时候比这种形式常用
cout<<FiName<<GiName<<endl;
}
~Name()
{
cout<<"~Name"<<endl;
}
protected:
char FiName[20];
char GiName[20];
}; class Employee
{
public:
Employee::Employee(char * pName, char * pAddress, int id):name(pName)
{
value = id; // 给邮编id赋值
// 给address 赋值
strncpy(address, pAddress, sizeof(address));
address[sizeof(address)-1] = '\0';
}
~Employee(); // 声明析构函数
Display1(); // 输出每个成员函数 protected:
Name name;
char address[80];
int value;
};
Employee::~Employee()
{
cout<<"~Employee"<<endl;
} Employee::Display1() // 输出
{
cout<<address<<endl
<<value<<endl;
}
void main()
{
char a[] = "张 三"; // 注意 这个人名的传递方法。 如果直接传值Employee b(张三) 姓名存储
Employee b(a,"未央,西安,陕西",710010); //在常量区 就不能使用 strtok函数分割
/*如果我非得这样定义一个类对象 Employee("张 三", 西安,陕西",710010); 构造函数应该怎样去写*/ b.Display1();
}