两种类型的构造函数
构造函数其实就是对对象进行初始化,而构造函数主要分为两种,分别是无参构造函数和有参构造函数,接下来我就一一简单地进行解释~
第一种:无参构造函数
直接上代码例子咯~
class Student
{
public:
//以下部分就是无参构造函数
Student()
{
year=30;
sex='M';
name="Jonnes";
}
//以上部分就是无参构造函数
private:
{
int year;
char sex;
char name [30];
}
}
以下为有参构造函数:
class Student
{
public:
//以下部分就是有参构造函数的声明
Student(int,char,char[]);
//以上部分就是有参构造函数的声明
private:
{
int year;
char sex;
char name [30];
}
}
//以下部分就是有参构造函数的定义
Student::Student(int n,char m,char k[30])
{
year=n;
sex=m;
strcpy(name,k);
}
//以上部分就是有参构造函数的定义
//------------------------------------------------------//
这里要说多一个东西,叫做用参数初始化表对数据成员初始化
**上面那部分:**
//以下部分就是有参构造函数的定义
Student::Student(int n,char m,char k[30])
{
year=n;
sex=m;
strcpy(name,k);
}
//以上部分就是有参构造函数的定义
及声明部分:
Student(int,char,char[]);
**两个合在一起去掉,可以改成:**
Student(int n,char m,char k[30]):year(n),sex(m)
{strcpy(name,k);}
//在这里要说明,如果要初始化的玩意儿里有数组(字符数组,整数数组啥的都算),那么数组的初始就不能在参数初始化表中进行,而应该在花括号里进行~
//还要再提一点就是,即使花括号里没东西可以写,但是花括号也要也要写出来:{}