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();//100AA bb(200);bb.Show();//200AA cc = 300;cc.Show();//300return 0;
}