对象的初始化定义了student类
- class student
-
{
-
private:
-
char name[3];
-
int age;
-
char ***;
-
public:
-
student(); //自己初始化无参函数 ==构造函数
-
student(char newname[3],int newage,char new***); //构造函数
-
void input(char newname[3],int newage,char new***);
-
void output();
-
}
初始化无参构造函数 student- student::student() 初始化函数属于 student 这个 类
-
{
-
name[0]='t';
-
name[1]='o';
-
name[2]='m';
-
***="f";
-
age=21; 没有返回值
-
}
初始化函数 构造函数 student(char newname[3],int newage,char new***); - student::student(char newname[3],int newage,char new***)
- {
- for(int i=0;i<=2;i++)
- {
- name[i]=newname[i];
- }
- age=newage;
- ***=new***;
- }
主函数- void main()
-
{
-
student mystudent; //自己定义的构造函数,
-
student yourstudent("jim",21,'n'); //构造函数定义
-
student.input("jim",21,'f');
-
student.output();
-
}
当我们定义了一个 student mystudent 对象时,就应该对他进行初始化。
我们没有初始化,mystudent ,那么我们的程序在运行时为什么不会错误呢??
原因:系统会自动初始化。
如果我们不想系统初始化,我们应该这么办呢?? 使用自己定义初始化.方法:在类中自己定义初始化函数 , - class
- {
- .....
- public:
- student(); //自己初始化无参函数==构造函数
....
}
所以,当我们定义了 student mystudent 后,mystudent这个对象的属性是
- name=tom;
- ***="f";
- age=21;
在 c++中,初始化函数专有名称 :构造函数
构造函数有特定规则:
1.函数名字 与 类 的名字一致
2.构造函数 没有返回值
3.一般把构造函数 放在 public 公开中
构造函数 是不是 唯一的呢?? 不是的,可以有多个构造函数
下面的类中,有两个 构造函数,- public:
- student(); //自己初始化无参函数 ==构造函数
- student(char newname[3],int newage,char new***); //构造函数
注意,有参数的构造函数定义后,必须通过参数初始化成员- void main() //注意比较 两个构造函数的不同
-
{
- ...
-
student mystudent; //无参构造函数,
-
student yourstudent("jim",21,'n'); //带参构造函数定义,必须通过参数初始化
- ....
- }
我们可以有多个构造函数,也可以一个构造函数也没有
因为系统会自动 初始化构造函数- 如果我们没有定义构造函数,系统会自动定义一个构造函数,但是我们看不见
- student::student
-
{
-
-
-
}
这点很重要:系统构造的无参函数 与 我们自己定义的无参函数一摸一样,
当我们自己定义了一个无参函数,那么系统定义的无参函数就不起作用了
阅读(605) | 评论(0) | 转发(0) |