用参数初始化表对学生信息初始化并输出学生信息
#include<iostream>
#include<cstring>
using namespace std;
class Student
{
/*如果数据成员是数组,则应当在构造函数的函数体中用语句对其赋值,而不能在参数初始化表中对其初始化*/
public:
Student(int n,char s,const char nam[]):num(n),sex(s)//定义构造函数
{
strcpy(name,nam);//函数体
}
void info();//声明成员函数
private:
int num;
char sex;
char name[20];
};
void Student::info()//定义成员函数
{
cout<<"num: "<<num<<endl;
cout<<"sex: "<<sex<<endl;
cout<<"name: "<<name<<endl<<endl;
}
int main()
{
Student stud1(1001,'m',"Wang_li");
stud1.info();
return 0;
}
在VS2019下,需将源文件的strcpy做一些修改:
#include<iostream>
#include<cstring>
using namespace std;
class Student
{
/*如果数据成员是数组,则应当在构造函数的函数体中用语句对其赋值,而不能在参数初始化表中对其初始化*/
public:
Student(int n, char s, const char nam[]) :num(n), sex(s)//定义构造函数
{
strcpy_s(name,strlen(nam)+1, nam);//函数体
}
void info();//声明成员函数
private:
int num;
char sex;
char name[20];
};
void Student::info()//定义成员函数
{
cout << "num: " << num << endl;
cout << "sex: " << sex << endl;
cout << "name: " << name << endl << endl;
}
int main()
{
Student stud1(1001, 'm', "Wang_li");
stud1.info();
return 0;
}