栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++之构造函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++之构造函数

1 构造函数可以分为两种:
  1. 普通构造函数
  2. 复制构造函数(又名拷贝构造函数)
2 构造函数的特性:
  1. 特殊的函数
  2. 创建对象时,自动调用(一个对象只能调用一次构造函数,只有在创建时自动调用(隐式调用)构造函数不能显示调用)
  3. 如果我们没有定义构造函数,系统会提供默认的构造函数(提供两个:一个普通构造, 一个复制构造),提供的普通构造函数是无参的,一旦我们自定义普通构造函数,那么这个普通构造函数就不再提供了
  4. 创建对象时,必须提供一个匹配的构造函数,否则无法创建对象
  5. 构造函数支持重载
  6. 构造函数支持参数默认值(如果同时存在函数重载 参数默认值,可能会出现调用的冲突)
3 构造函数的格式:

普通函数格式:返回值 函数名(形参列表);
构造函数格式:类名(形参列表);

  1. 构造函数名必须与类名相同
  2. 构造函数没有返回值类型
    注:没有返回值,返回值类型为: void
    没有返回值类型,连void也没有
4 构造函数的作用
  1. 给对象一个标识符
  2. 为对象的数据成员分配空间
  3. 对数据成员初始化(或赋值):需要程序员自己写构造函数
5 构造函数的注意事项
  1. 一个对象只能调用一次构造函数
  2. 通常我们都会自定义构造函数(带参),用于创建对象的初始化
  3. 由于我们也习惯不初始化创建对象,所以我们也要自定义无参构造
6 初始化表达式

本质:表达式
理解:用来对数据成员初始化的表达式
用来给对象的数据成员初始化的
分配空间的同时,写入数据:初始化

  1. 初始化表达式只能用于构造函数中
  2. 初始化表达式位于构造函数形参列表后,函数体前形参列表后,加:间隔
  3. 初始化的顺序执行顺序不是由成员变量在初始化表的顺序决定的,而是由成员变量在类中被声明时的顺序决定的(下面中的x先声明,所以x先初始化)
  4. 初始化表达式式中的变量顺序最好与其被声明的顺序一致

初始化的特殊性:

  1. 分配空间的同时写入数据
  2. 一次性写入多个数据到空间中
    常见:数据的初始化
    结构体的初始化
  3. 特殊的空间
    const int a = 80;
    int b = 80;
    int &p = b;
class Point {
	int x;
	int y;
public:
	Point();
};
// Point::Point(int a, int b):初始化表达式1,初始化表达式2
//{
//}
 Point::Point(int a, int b): x(a),y(b)
{
}
class Point {
	int x;
	int y;
public:
	Point();
};

Point::Point()
{
	std::cout<<"无参构造函数"<
	//Point ss();   //不是创建对象, 而是函数声明
	Point ss;   //调用无参构造函数
	Point *p = new Point;//调用无参构造函数
	Point *q = new Point();//调用无参构造函数,和new Point等价
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027157.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号