1.构造函数的作用:由于类是一个抽象概念,不是实体,所以不可以在声明时对数据成员进行初始化,此时即需要构造函数来为对象的属性赋初值。
2.构造函数的定义格式:
类名(形参){
...........
};
3.构造函数的特点(与普通方法的区别):
a.方法名与类名相同:类名,构造方法名首字母大写,而普通方法中为小写;
b.无返回值,也不用加void;
c.构造函数对象创建时系统自动调用,而普通方法需要对象名.方法名调用。
4.构造函数的分类
a. 显式构造函数:自行定义,可以有多个类型;
b.隐式构造函数:由编译器生成(当类中一个显式构造方法都没有时)。
5.
a.构造函数可以通过构造函数初始化列表给其数据成员赋值。
eg:
class A{
int a;
int b;
public:
A(int i,int j):b(j),a(i)
{ }
...........
};
b.构造函数如果在类外实现,类内声明时不带初始化列表。
c.构造函数中可以使用默认参数值。
示例:
#include<iostream>
#include <string.h>
using namespace std;
class Student {
public:
int age;
char name[20];
char address[20];
public:
void sayHello(){
cout<<"大家好!"<<endl;
}
int add(int a,int b){
int r = a+b;
return r;
}
};
int main(){
Student zhangsan;
zhangsan.age = 20;
strcpy(zhangsan.name,"zhangsan");
strcpy(zhangsan.address,"huxian");
cout<<"zhangsan.age="<<zhangsan.age<<endl;
cout<<"zhangsan.name="<<zhangsan.name<<endl;
cout<<"zhangsan.address="<<zhangsan.address<<endl;
zhangsan.sayHello();
int r = zhangsan.add(1,1);
cout<<"r = "<<r<<endl;
Student lisi;
return 0;
}