构造函数的概述
构造函数:编译器自动调用,如果用户不提供构造函数,编译器会提供一个空的无参构造函数。
类实例化对象的时候,先为对象开辟空间,在自动调用构造函数 完成初始化。
构造函数定义形式
-
构造函数必须是public
-
构造函数的函数名必须和类名称相同, 不能有返回值类型(连void都不可以),可以有形参(构造函数可以重载)。
class Data
{
public:
Data()
{
cout<<"无参构造"<<endl;
}
};
int main(int argc, char *argv[])
{
//实例化对象 自动调用 无参构造
Data ob1;
return 0;
}
构造函数分类
无参构造
有参构造
构造函数调用形式
#include <iostream>
using namespace std;
class Data
{
private:
int m_A;
public:
Data()
{
cout<<"无参构造"<<endl;
}
Data(int a)
{
m_A = a;
cout<<"有参构造m_A="<<m_A<<endl;
}
};
int main(int argc, char *argv[])
{
//1、隐式调用无参构造(推荐)
Data ob1;
//2、显示 调用无参构造
Data ob2=Data();
//3、隐式调用有参构造(推荐)
Data ob3(10);
//4、显示调用有参构造
Data ob4=Data(20);
//5、匿名对象 当前语句结束 匿名对象将被释放
Data();//无参的匿名对象
Data(30);//有参的匿名对象
//6、以下代码不是实例化对象 而是函数声明
//该函数名为ob5 无参 返回值类型为Data
Data ob5();
return 0;
}
网友评论