-
C++ 初始化列表
2020-07-18 19:16:24//初始化列表 class Person{ public: //传统初始化操作 Person(int a, int b, int c) { m_A = a; m_B = b; m_C = c; } int m_A; int m_B; int m_C; }; void test01() { Person p(10,20, 30).#include <iostream> using namespace std; #include <string> //初始化列表 class Person{ public: //传统初始化操作 Person(int a, int b, int c) { m_A = a; m_B = b; m_C = c; } int m_A; int m_B; int m_C; }; void test01() { Person p(10,20, 30); cout << "m_A=" << p.m_A << endl; cout << "m_B=" << p.m_B << endl; cout << "m_C=" << p.m_C << endl; } int main() { test01(); system("pause"); }
#include <iostream> using namespace std; #include <string> //初始化列表 class Person{ public: //传统初始化操作 /*Person(int a, int b, int c) { m_A = a; m_B = b; m_C = c; } */ //初始化列表初始化属性 Person(): m_A(10),m_B(20),m_C(30){} int m_A; int m_B; int m_C; }; void test01() { // Person p(10,20, 30); Person p; cout << "m_A=" << p.m_A << endl; cout << "m_B=" << p.m_B << endl; cout << "m_C=" << p.m_C << endl; } int main() { test01(); system("pause"); }
上面两种方式都正常的输出:
不过我们发现第二种的初始化列表写死了,不够灵活,我们怎么才能灵活的赋值
#include <iostream> using namespace std; #include <string> //初始化列表 class Person{ public: //传统初始化操作 /*Person(int a, int b, int c) { m_A = a; m_B = b; m_C = c; } */ //初始化列表初始化属性 Person(int a, int b, int c): m_A(a),m_B(b),m_C(c){} int m_A; int m_B; int m_C; }; void test01() { // Person p(10,20, 30); Person p(30,50,60); cout << "m_A=" << p.m_A << endl; cout << "m_B=" << p.m_B << endl; cout << "m_C=" << p.m_C << endl; } int main() { test01(); system("pause"); }
这个初始化值就比较灵活了
-
静态map成员 c++ 初始化
2018-09-25 20:23:39 -
C++ 初始化变量及注意事项
2018-07-08 19:12:58C++初始化变量 C++初始化变量一共有四种方式 等于号,’=’初始化 int a = 0; 在等号的右边输入初始值。 括号,’()’初始化 int a(0); 在括号的中间输入初始值。 花括号+等于号,’{}’+’=’初始化,又...C++初始化变量
C++初始化变量一共有四种方式
等于号,’=’初始化
int a = 0;
在等号的右边输入初始值。
括号,’()’初始化
int a(0);
在括号的中间输入初始值。
花括号+等于号,’{}’+’=’初始化,又称为初始化列表
int a={0};
在等号右边的花括号里面输入值。
花括号,’{}’声明,又称为初始化列表
int a{0};
在花括号里面输入值。
注意事项:
初始化列表这种方式是不允许有数据丢失。比如使用一个浮点类型的值去初始化一个整型的变量,系统就会报错。
例如:
使用double类型的值初始化int变量,就会造成数据丢失。double小数部分的值肯定会数据丢失,整数部分的值可能会丢失(如果double的整型部分超出了int的最大长度。)。 -
C++ 初始化列表给数组初始化
2020-03-27 21:32:37一般的初始化是使用小括号()。 给数组初始化是使用大括号{}。 class base{ char a[10]; public: base():a{{}}{} } 上例的初始化就相当于:a[10] = {};。- 一般的初始化是使用小括号
()
。 - 给数组初始化是使用大括号
{}
。
class base{ char a[10]; public: base():a{} { ... } }
上例的初始化就相当于:
a[10] = {};
。 - 一般的初始化是使用小括号
-
c++初始化列表
2017-12-21 10:28:51c++构造函数中使用初始化列表初始化成员变量时要注意成员变量的初始化是按照声明的顺序初始化的。/* 编者:heavenmint@foxmail.com 功能:c++ 列表初始化用法演示 环境:Win10 Professional 1703 / Microsoft ... -
C/C++初始化和去初始化函数
2018-06-10 16:24:21初始化/去初始化函数根据作用域可以分为几种不同的应用情形 1. 全局初始化/去初始化 这一次运行程序只做这一次初始化/去初始化 2. 模块初始化/去初始化 每次加载/卸载这个模块都调用一次初始化/去初始化 ... -
C++初始化列表
2018-08-28 14:43:30除了性能问题之外,有些时场合初始化列表是不可或缺的,以下几种情况时必须使用初始化列表: 常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面 引用类型,引用必须在定义的时候初始化,并且不... -
C++ 初始化函数
2019-03-16 08:01:00初始化函数:OnInitDialog() 在这个位置添加初始化代码 转载于:https://www.cnblogs.com/liming19680104/p/10540554.html -
C++初始化和引用
2015-10-25 15:26:18C++几种初始化的方式: #include int main() { int a=0;//直接用等号初始化 int b={1};//用等号和花括号 int c{2};//直接用花括号 int d(3);//直接用括号 std::cout; return 0; }打印:0123 引用: -
C++ 初始化方式
2017-02-09 21:01:53直接初始化和拷贝初始化 如果使用等号(=)初始化一个变量,实际上执行的是拷贝初始化,编译器把等号右侧的初始值拷贝到新创建的对象中去。与之相反,如果不使用等号,则执行的是直接初始化。 当初始值只有一个时... -
C++初始化成员列表
2011-08-02 13:46:02C++初始化类的成员,不但可以用构造函数(constructor)完成,而且可以用初始化类成员列表来完成。MFC大量用到此方法。例如有些初学者可能不大理解如下代码: class A { public: int member_var; //成员变量 A -
C++初始化对象的方法总结
2012-11-17 23:15:16最近在objective-c代码里要集成使用c++第三方的类库,所以就接触了c++初始化对象的方法,下面简单介绍一下。 初始化两种方法: 第一种初始化方法:ClassName object(初始化参数); 第二种初始化方法:ClassName... -
c++初始化数组
2016-11-18 21:20:57在c++中,用户可以逐个初始化数组,也可以使用一个初始化语句,如下所示: double balance [5]={1000.0,2.0,3.4,17.0,50.0}; 大括号{}之间的值的数目不能大于我们在数组声明时在方括号[]中指定的元素数目 如果用户... -
C++初始化列表作用
2018-04-23 14:02:28使用初始化列表对class类型进行初始化可以少调用一次构造函数 -
C++初始化与赋值
2009-08-10 19:36:00摘自:... C++初始化与赋值 先来个区别说明:赋值操作是在两个已经存在的对象间进行的,而初始化是要创建一个新的对象,并且其初值来源于另一个已存在的对象。编译器会区别这两 -
C++初始化参数列表对成员函数初始化
2017-09-13 14:33:37#include using namespace std; class Desk{ ... /*声明一个有参的构造函数,并用参数的初始化列表对数据成员初始化*/ Desk(int h,int w,int l):height(h),width(w),length(l){} int volume(); private: -
C++初始化顺序
2016-03-29 13:48:54如下代码所示: class test { const int a; std:string str; object o; test():str(“df”),o(null),a(0) ... test():str(“df”),o(null),a(0) 即...它们会在构造函数正式调用前被调用,且他们的初始化顺序并不是根据 -
C++初始化父类
2018-07-20 12:38:43class father{int f_data;...} class son:public father { int s_data; public: son(int s_d,int f_d):s_data(s_d),father(f_data){} //子类调用父类构造函数必须使用参数化列表 ... }... -
C++ 初始化形式、变量初始化规则、类构造函数的初始化列表
2015-04-24 22:55:35类构造函数的初始化列表,举例 一个对象的构造分两部分,首先是分配空间,然后初始化。 只要有对象生成,不管是以什么形式生成,都会调用构造函数进行初始化。 然后下面有个例子,在蓝色区域Big类的复制构造函数中,... -
c++ 初始化引用时类型需一致,常量引用的初始化例外
2019-05-23 01:11:19我们知道,C++中,在进行引用的初始化时,需要注意引用的类型必须和引用对象的类型一致,但又两种情况例外,其中一种就是对常量引用的初始化。 引用的类型一致 int val1 = 5; int &val2 = val1; val2 = 2.3; //... -
C++初始化字符串
2017-09-12 09:54:14标准库提供了string表示可以变长的字符序列,使用string类型必须首先包含string头文件,... 默认初始化,s1是一个空串 string s2(s1) s2是s1的副本 string s2=s1 等价于s2(s1),s2是s1的副本 string s3(“value”) -
C++初始化成员列表(member initialization list)
2011-05-12 11:01:00C++初始化成员列表(member initialization list)C++初始化类的成员,不但可以用构造函数(constructor)完成,而且可以用初始化类成员列表来完成。MFC大量用到此方法。例如有些初学者可能不大理解如下代码:... -
c++初始化列表和直接赋值的区别
2019-01-19 12:52:02关于C++中对象的初始化采用构造函数进行,在构造函数中包含了对象成员变量的初始化和赋值两项操作,如下面代码中的 CBox的初始化函数,其中m_FaceNm 为常量,m_strName 为引用,对于常量只有初始化操作,没有赋值,... -
c++初始化 未赋值部分
2018-08-24 20:30:06数组初始化列表中的元素个数小于指定的数组长度时,不足的元素补以默认值。 对于基本类型int来说,当然就是补int()即0了。再看一下非基本类型的数组: string a[5] = { "foo" }; 有了上面的规则,就...
收藏数
41,682
精华内容
16,672
-
2020年-世界五百强前百(中国)
-
MySQL 高可用工具 DRBD 实战部署详解
-
C++ STL(十三):常用查找算法(find、find_if、adjacent_find、binary_search、count、count_if)
-
MATLAB最邻近插值算法的实现
-
马士兵老师HashMap学习笔记
-
C#坦克大战带技能版源码(RealTank).zip
-
Samba 服务配置与管理
-
request+response学习笔记
-
华为1+X——网络系统建设与运维(高级)
-
【Flutter】StatefulWidget 组件.zip
-
C#--PictureBox绘制自动换行的文字
-
EaUS Video Editor(视频剪辑软件)官方中文版V1.6.8.53
-
股票投资了解
-
BGLight.zip
-
MySQL 管理利器 mysql-utilities
-
JS面向对象编程及ES6新特性(更新中)
-
PlantCARE_24263__plantCARE.tar.gz
-
NFS 实现高可用(DRBD + heartbeat)
-
C++ STL(十七):常用集合算法(set_intersection、set_union、set_difference)
-
Hdu自动健康打卡系统