C++中有一种特殊的函数,它叫构造函数,它没有返回值,函数名与类名相同,当创建对象时会自动调用它。它可以在创建对象的同时为其赋值。
例如:
#include<iostream>
using namespace std;
class AA
{
public:
int a;
public:
AA()
{
a = 100;
}
public:
void Show()
{
cout << a << endl;
}
};
int main()
{
AA aa;
aa.Show();
return 0;
}
当类中没有写构造函数时,会存在一个默认的构造函数,它没有参数,函数体中无内容,若写了构造函数,默认构造函数就不存在了。
默认构造函数:
AA() {}
构造函数的重载:
构造函数也和普通成员函数一样可以重载,创建对象时会根据传递的实参来判断调用哪一个构造函数,若有多个构造函数,那么创建对象时提供的实参必须和其中的一个构造函数相匹配,也就意味着,闯进对象时,只有一个构造函数会被调用。
#include<iostream>
using namespace std;
class AA
{
public:
int a;
public:
AA()
{
a = 100;
}
AA(int n);
public:
void Show()
{
cout << a << endl;
}
};
AA::AA(int n)
{
a = n;
}
int main()
{
AA aa;
aa.Show();//100
AA bb(200);
bb.Show();//200
AA cc = 300;
cc.Show();//300
return 0;
}