如何访问南部县的外国网站,并确保安全浏览?
摘要:南部县网站建设,外国网站开放的浏览器,6网站免费建站,加盟品牌网站建设本文已收录至《C语言》专栏! 作者:ARMCSKGT 目录 前言 正文 初始化列表 成员变量的定义与初始化 初
南部县网站建设,外国网站开放的浏览器,6网站免费建站,加盟品牌网站建设本文已收录至《C语言》专栏#xff01; 作者#xff1a;ARMCSKGT 目录 前言
正文
初始化列表
成员变量的定义与初始化
初始化列表的使用
变量定义顺序
explicit关键字
隐式类型转换
自定义类型隐式转换
explicit 限制转换
关于static
static声明类成员
友元
友… 本文已收录至《C语言》专栏 作者ARMCSKGT 目录 前言
正文
初始化列表
成员变量的定义与初始化
初始化列表的使用
变量定义顺序
explicit关键字
隐式类型转换
自定义类型隐式转换
explicit 限制转换
关于static
static声明类成员
友元
友元函数
友元函数特殊使用场景
友元类
内部类
概述
特性
匿名对象
编译器对于自定义类型的一些优化
隐式类型转换的优化
传参优化
返回值优化
说明
合理使用优化
关于对象的理解
最后 前言
前面我们介绍了类和对象的基本概念以及类的六个默认成员函数这些知识已经为我们搭起了一个基本的类框架不过类和对象中还有一些小细节需要介绍本节我们将进入类和对象的收尾阶段 正文 初始化列表 成员变量的定义与初始化 上篇我们学习了构造函数构造函数是用来初始化成员变量的而成员变量的定义是在初始化列表对于一些需要在定义时就赋值的成员例如 const int x 这时需要使用初始化列表进行因为在C11之前C98并不支持在声明列表中给缺省值 虽然上述构造函数调用之后对象中已经有了一个初始值但是不能将其称为对对象中成员变量的初始化构造函数体中的语句只能将其称为赋初值而不能称作初始化。因为初始化只能初始化一次而构造函数体内可以多次赋值。 int num 0; //在定义时赋初值 - 初始化
num 1; //被定义后赋值 - 赋值 那么初始化列表与构造函数有什么关系呢构造函数是对象在实例时就调用的一个函数初始化列表在构造函数中会随构造函数一起执行初始化列表最先执行并将指定的值赋给每个成员变量如果我们没有显示去写初始化列表编译器仍然会执行初始化列表只不过内置类型初始化为随机值自定义类型则调用其默认构造函数 示例1 class Date
{
public://猜猜下面两个构造函数的区别Date() //初始化列表初始化:_year(2008),_month(12),_day(21){_year 0;_month 0;_day 0;}Date(size_t year, size_t month, size_t day) //函数内赋值{ _year year;_month month;_day day;}private:size_t _year;size_t _month;size_t _day;
};int main()
{Date d1;Date d2(1970,1,1);return 0;
} 使用初始化列表的构造函数 未使用初始化列表的构造函数 示例2 class Test
{
public:Test() //a会被初始化为什么:a(1){ }
private:int a 2;
};int main()
{Test t;return 0;
} 编译器优先使用初始化列表中的初值进行初始化 初始化列表的使用 初始化列表在函数参数()后函数体前{}以一个(:)冒号开始接着是一个以(,)逗号分隔的数据成员列表每个成员变量后面跟一个放在括号中的初始值或表达式最后一个列表成员后没有任何符号。
