当前位置:首页 > 数码 > 中的成员初始值设定项和聚合配置详尽解析-14-提高效率和加强封装-优化代码可读性-C (中的成员初始密码是啥)

中的成员初始值设定项和聚合配置详尽解析-14-提高效率和加强封装-优化代码可读性-C (中的成员初始密码是啥)

admin4个月前 (05-12)数码32

C++14作为C++言语的一个关键版本,引入了许多新的个性和配置,其中包括成员初始值设定项(MemberInitializerList)和聚合(Aggregate)。这些个性在提高代码的可读性和灵敏性方面起到了关键作用。本文将具体引见这两个个性及其在C++14中的运行。

二、成员初始值设定项(MemberInitializerList)

1.成员初始值设定项的定义

成员初始值设定项是一种在结构函数初始化列表中指定成员变量初始值的方法。经过在结构函数初始化列表中列出成员变量及其初始值,可以确保成员变量在结构函数的主体局部被初始化。

2.成员初始值设定项的语法

成员初始值设定项的语法如下:

classMyClass{public:inta;doubleb;MyClass(intx,doubley):a(x),b(y){}//成员初始值设定项};

在上述示例中,MyClass有两个成员变量a和b,它们的初始值经过结构函数初始化列表启动设定。这种形式的初始化可以确保成员变量在结构函数主体局部口头之前被正确初始化。

中的成员初始值设定项和聚合配置详尽解析

3.成员初始值设定项的留意事项

三、聚合(Aggregate)

1.聚合的定义

聚合是一种不凡的类类型,它准许将多个变量组分解一个繁多的实体。聚合的特点是它们没有结构函数、析构函数或任何虚函数。聚合只能蕴含其余聚合类型的成员,并且不能蕴含类类型的成员。

2.聚合的语法

聚合的语法如下:

structMyAggregate{inta;doubleb;};

在上述示例中,MyAggregate是一个聚合类型,它蕴含了两个整型变量a和b。因为MyAggregate是一个聚合类型,因此它不能蕴含结构函数、析构函数或虚函数。

3.聚合的留意事项

四、代码示例与解说(示例代码:经常使用成员初始值设定项和聚合)

上方是一个经常使用成员初始值设定项和聚合的示例代码:

#include<tream>usingnamespacestd;//定义一个聚合类型MyAggregatestructMyAggregate{inta;doubleb;};//定义一个类MyClass,该类蕴含一个聚合类型的成员和一个经常使用成员初始值设定项初始化的成员变量。classMyClass{public:MyAggregateagg={10,20.5};//定义一个聚合类型的成员变量agg,并经常使用成员初始值设定项初始化它的成员变量a和b。intc=30;//定义一个整数类型的成员变量c,并经常使用成员初始值设定项将其初始化为30。};intmn(){MyClassobj;//创立一个MyClass类型的对象obj。cout<<"agg.a:"<<obj.agg.a<<endl;//输入obj的聚合类型成员变量agg的成员变量a的值。cout<<"agg.b:"<<obj.agg.b<<endl;//输入obj的聚合类型成员变量agg的成员变量b的值。cout<<"c:"<<obj.c<<endl;//输入obj的整数类型成员变量c的值。return0;}

以下是代码的解说:

MyAggregateagg;定义了一个名为agg的MyAggregate类型的成员变量。因为MyAggregate是聚合类型,所以它不能蕴含结构函数,咱们须要经常使用成员初始值设定项来初始化它的成员变量。

MyAggregateagg={10,20.5};这里咱们经常使用了成员初始值设定项来初始化agg的成员变量a和b。咱们可以经过在=前面间接跟上初始化列表来给聚合类型的成员变量启动初始化。初始化列表中的顺序必定与聚合类型成员变量在定义时的顺序相反。

intc=30;这里咱们定义了一个名为c的整数类型成员变量,并经常使用成员初始值设定项将其初始化为30。

五、论断

经过经常使用成员初始值设定项和聚合配置,咱们可以愈加灵敏地治理类中的成员变量。成员初始值设定项准许咱们在结构函数初始化列表中指定成员变量的初始值,而聚合配置则准许咱们将多个变量组分解一个繁多的实体。这些个性使得代码愈加繁复、可读性更强且愈加灵敏。


c#.NET中如何给一个数组传值

楼主,麻烦你说清楚点行不……你指的传值是空数组,还是有数值的数组呢? 一维数组 int[] arr; arr = new int[5];(arr[4]);初始化 C# 数组元素可以在创建时使用int[] arr2Lines; arr2Lines = new int[5] {1, 2, 3, 4, 5}; 但 C# 初始值设定项的数目必须与数组大小完全匹配,也可以使用在同一行中声明并初始化 C# 数组: int[] arr1Line = {1, 2, 3, 4, 5}; 此语法创建一个数组,其大小等于初始值设定项的数目。 在程序循环中初始化 在 C# 中初始化数组的另一个方法是使用 for 循环。 下面的循环将数组的每个元素都设置为零: int[] TaxRates = new int[5]; for (int i=0; i<; i++) { TaxRates[i] = 0; } 交错数组 在下面的交错数组中,第一行有四项,而第二行有三项: int[][] jaggedArray = new int[2][]; jaggedArray[0] = new int[4]; jaggedArray[1] = new int[3]; 多维数组 使用以下语法声明多维矩形数组: int[,] arr2D; float[,,,] arr4D; 声明之后,可以按如下方式为数组分配内存: arr2D = new int[5,4]; 然后,可以使用以下语法访问数组的元素: arr2D[4,3] = 906; 由于数组是从零开始的,因此此行将第四行第五列中的元素设置为 906。 初始化 可以使用以下一种方法,在同一个语句中创建、设置并初始化多维数组: int[,] arr4 = new int [2,3] { {1,2,3}, {4,5,6} }; int[,] arr5 = new int [,] { {1,2,3}, {4,5,6} }; int[,] arr6 = { {1,2,3}, {4,5,6} }; 以上引用别人的答案,自己删除了一些内容;以下属于个人对数组的添加:动态数组:添加using ;声明:ArrayList a = new ArrayList();赋值(object value);//object value可以是任何类型数值插入值(int index,object value);//int index在第几个索引插入值;object value可以是任何类型数值;将动态数组转换为字符串数组:string[] aa=new string[];for(int i=0;i<;i++){aa[i] = a[i]();}

海尔haier 冰箱显示F6??

显示F6该故障的主要原因:一是变温室蒸发器(变温室化霜)温度传感器异常;二是变温室蒸发器温度传感器的阻抗信号/电压信号变换电路异常;三是微处理器IC1异常。 首先,测微处理器IC1的12脚输入变温室蒸发器温度检测电压是否正常,若正常,说明IC1异常;若不正常,检查连接器CN4是否正常,若不正常,重新连接;若正常,检查变温室蒸发器温度传感器是否正常,若异常,用相同阻值的负温度系数热敏电阻更换即可;若正常检查CN4、R26、RI8、C14。 扩展资料海尔BCD-248WBCS BCD-288WBCS电冰箱显示故障代码F1。 该故障的主要原因:一是冷藏室蒸发器传感器异常;二是冷藏室蒸,发器传感器的阻抗信号/电压信号变换电路异常;二是微处理器IC1异常。 首先,测微处理器IC1的16脚能否输入正常的冷藏室蒸发器温度检测电庄,若能,说明IC1异常;若不能,检查连接器CN4连接是否正常,若不正常,重新连接;若正常,检查冷藏室蒸发器温度传感器是否正常,若异常,用相同阻值的负温度系数热敏电阻更换即可;若正常检查CN4、R14、R22、C10。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: C

“中的成员初始值设定项和聚合配置详尽解析-14-提高效率和加强封装-优化代码可读性-C (中的成员初始密码是啥)” 的相关文章

深化剖析-atomic-代码范例和实践运行-std-现代-中的原子-C (深化剖析整改)

深化剖析-atomic-代码范例和实践运行-std-现代-中的原子-C (深化剖析整改)

一、引言 在并发编程中,原子操作是一种无法终止的操作,即在多线程环境中,一旦开局就不会被其余线程搅扰。C++11引入了std::atomic库以支持原子操作,为并发编程提供了更为方便和高效的...

编程实践-哈希负载均衡算法-IP-C (编程实践心得体会)

编程实践-哈希负载均衡算法-IP-C (编程实践心得体会)

Nginx 是一个高性能的开源 Web 服务器和反向代理服务器,因其高效处理高并发的请求而闻名。以下是一些 Nginx 用于处理高并发的主要特点和技术: 事件驱动架构: Nginx 使...

揭秘性能与并发的机密-C-多线程编程 (性能与什么有关)

揭秘性能与并发的机密-C-多线程编程 (性能与什么有关)

当天咱们将深化讨论C++中的多线程编程,提醒多线程如何解锁性能后劲,提高程序的并发性能。 什么是多线程? 在计算机迷信中,多线程是指一个进程(程序的口头实例)中的多个线程同时口头。每个...

提升性能的新利器-17中的并行功能-C (提升 性能)

提升性能的新利器-17中的并行功能-C (提升 性能)

C++17扩展了STL(Standard Template Library,标准模板库)以支持并行算法。这意味着许多常见的算法,如std::sort、std::for_each、std::tran...

开源项目-助初学者进阶成长-C-八个 (开源项目有什么用)

开源项目-助初学者进阶成长-C-八个 (开源项目有什么用)

通过参与或阅读开源项目的源代码,你可以获得丰富的实践机会。实际的项目代码比简单的教程更具挑战性,可以帮助你深入理解 C++ 的各种概念和技术。 ThreadPool 一个简单...

让新手也能轻松把握-C-类模板特化与承袭经常使用指南 (请问新手)

让新手也能轻松把握-C-类模板特化与承袭经常使用指南 (请问新手)

一、类模板特化 1.特化的成功 你可以为特定类型提供类模板的替代成功。例如,你或许以为constchar类型(C格调字符串)的Grid行为没无心义。Grid<constchar&...

的区别-中-C-math.h-和-cmath (的区别中的钱)

的区别-中-C-math.h-和-cmath (的区别中的钱)

一、引言 C++规范库中的<cmath>和C言语规范库中的<math.h>均为数学函数库,它们提供了一系列数学函数和常量。但是,这两者之间存在一些关键的区别...

监禁程序后劲的优化利器-C-中的内联函数 (监禁等于坐牢吗)

监禁程序后劲的优化利器-C-中的内联函数 (监禁等于坐牢吗)

一、内联函数的定义和特点 内联函数是一种不凡的函数,它经过在编译时将函数调用交流为函数体中的代码,以缩小函数调用的开支,从而提高程序的口头效率。内联函数通罕用于那些函数体较小、调用频繁的场景...