构造函数参数列表中不支持对参数使用=初始化
学习一下构造函数初始化列表的语法
用 string 类型来定义字符串变量
为什么一定要这么写呢。
你就直接写
person::person(char *num,char *name....) //这样就可以
可以这样来进行写
class Person
{
Person(char * num="");
};
Person::Person(char* num)
{
}
再实现的时候是不需要添加默认参数的,只需要再声明构造函数的时候设置默认参数就可以了。
另外,把char * NUM =" "改成 const char * NUM=" "
其它位置修改方法都一样,添加const关键字就可以了。
正确的写法应该如下:
class person
{
public:
person(const char* NUM = " ", const char* NAME=" ", const char* SEX = " ", const char* AGE = " ", const char* STATUS = " ", const char* EDUCATION = " ");
//....其它函数
};
person::person(const char* NUM, const char* NAME, const char* SEX, const char* AGE, const char* STATUS, const char* EDUCATION)
{
//
}
自己写进程序里的字符串,不赋值给变量,它就单纯是一个数据,你想用一个指针去存储这个常量逻辑上就不行,指针储存的是地址,这样一个常量它有地址吗?
1.使用TCHAR 代替char
2.使用swprintf_s代替sprintf_s
3.使用TEXT函数或者是_L修饰const char[]类型的字符串