- 浏览: 461222 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
摘抄:钱能的《C++程序设计教程》
一、需要初始化的数据成员是对象的情况;
二、需要初始化const修饰的类成员;
三、需要初始化引用成员数据;
四、注意,初始化的先后顺序有区别的!从上到下,从左到右。
一、需要初始化的数据成员是对象的情况;
二、需要初始化const修饰的类成员;
三、需要初始化引用成员数据;
因为常量(const)是不能被赋值的;
引用也不能重新指派。
我的测试
一、需要初始化的数据成员是对象的情况;
二、需要初始化const修饰的类成员;
三、需要初始化引用成员数据;
四、注意,初始化的先后顺序有区别的!从上到下,从左到右。
class point { private: int x,y; public: point(int m=0,int n=0):x(m),y(n) { x=m; y=n; } …… };
一、需要初始化的数据成员是对象的情况;
class AAA { private: int aa; public://正规初始化 AAA(int i):aa(i){} //public://这叫赋值 // AAA(int i) // { // aa = i; // } }; class BBB { private: AAA oo; public: BBB(int i):oo(i) { } };
二、需要初始化const修饰的类成员;
三、需要初始化引用成员数据;
因为常量(const)是不能被赋值的;
引用也不能重新指派。
class Test { private: const int boy; int& girl; public: Test(int i, int& j):boy(i), girl(j) { } };
我的测试
#include <iostream> using namespace std; class TestInit { int aa; int bb; public: // 情况一:无构造方法,使用自带的,结果 aa = 0 bb = 0 // 情形二:自定义构造方法,但不作为,结果 aa = 2147348480 bb = 30089830 // TestInit( ){} // 情形三:使用初始化列表,先a再b,结果 aa = -1 bb = -1 // TestInit( ):aa(-1), bb(aa) {} // 情形四:同上,但是先b再a,结果 aa = 30089830 bb = -1 // TestInit( ):bb(-1), aa(bb) {} void print() { cout<<"aa = "<<aa<<" bb = "<<bb<<endl; } }; int main() { TestInit( ).print(); return 0; }
发表评论
-
float equal
2013-05-23 18:21 822- (BOOL)floatA:(float)f1 equalB ... -
C++序列化
2012-07-12 09:51 597http://hi.baidu.com/ewook/item/ ... -
C++著名内裤
2011-12-02 14:00 8131、C++各大有名库的介绍 ... -
C++写C
2011-09-06 17:23 656在C++中写C,标准头文件写法 #ifndef __AB ... -
errno.h
2011-05-05 14:27 698#define EPERM 1 ... -
__cplusplus
2011-04-21 15:09 740http://www.cnblogs.com/stonecra ... -
Pthread__常用
2011-04-21 11:46 854http://blogold.chinaunix.net/u/ ... -
常用预编译
2011-04-21 10:32 658#if defined(WIN32) || defined ... -
C++__容器
2011-04-18 10:16 560http://apps.hi.baidu.com/share/ ... -
C++模板
2011-03-29 14:27 626内容主要来至《钱能C++程序设计教程》&《C++ Pr ... -
交叉引用、前置声明
2011-03-02 09:40 807有两个类相互引用了,编译器报错。 原因是两个类交叉引用: A ... -
typedef的四个用途和两个陷阱
2010-12-14 12:34 657http://hi.baidu.com/changfeng01 ... -
第五届开源小组招新题目
2010-12-03 21:56 752这是学校的开源小组招新题。 08年时我是第二届的组长,不知不觉 ... -
string const char*
2010-12-02 16:13 779http://topic.csdn.net/u/2008092 ... -
CPP Container
2010-11-10 09:20 732延后整理。。。 -
C语言运算符优先级
2010-11-02 17:45 791优先级 运算符 ... -
point point
2010-11-02 17:23 625http://learn.akae.cn/media/ch23 ... -
位运算
2010-11-01 11:33 783千百年来,位运算始终没出现在我写的代码里,今天终于出现了。 ... -
Unix环境下操作特大文件
2010-11-01 11:03 619http://hi.baidu.com/jiangfeng11 ... -
GCC在C语言中内嵌汇编
2010-10-22 14:48 1370http://hi.baidu.com/liu_bin0101 ...
相关推荐
### C++构造函数初始化列表详解 在C++编程语言中,构造函数是对象生命周期开始时自动调用的特殊成员函数,用于初始化对象的状态。构造函数初始化列表是C++中一个非常重要的特性,它允许程序员在对象创建时直接对类...
c++初始化列表和构造函数初始化区别.pdf
C++初始化成员列表 C++语言中的初始化成员列表是一种特殊的语法结构,它允许在构造函数中对类的成员变量进行初始化。这种机制可以解决一些特殊的问题,如成员变量是类类型且没有默认构造函数的类,或者const成员或...
C++ 初始化列表是C++编程中一个非常重要的概念,它允许我们在创建对象时直接指定成员变量的初始值。初始化列表以冒号开头,后跟一系列以逗号分隔的成员变量及其对应的初始值,形式如下: ```cpp struct foo { ...
C++使用初始化列表的方式来初始化字段的方法 C++语言中,初始化列表是一种常用的初始化对象成员的方法。今天,我们来探讨C++使用初始化列表的方式来初始化字段的方法。 首先,让我们了解什么是初始化列表。初始化...
### C++中成员初始化列表的使用 在C++编程中,成员初始化列表是一个非常重要的概念,尤其是在类的设计和实现过程中。本文将详细解释成员初始化列表的概念、用途以及它与传统构造函数内初始化的区别,并通过具体示例...
何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的克访问性不同...
C++中的全局变量初始化是一个重要的话题,涉及到程序的正确性和可预测性。全局变量,即具有静态存储期的变量,其生命周期始于程序开始,终于程序结束。本文将深入探讨全局变量初始化的时机、方式以及一些处理特殊...
C++类的成员初始化列表是构造函数中一种特殊的形式,用于在对象实例化时直接对类的成员变量进行初始化。这种列表在特定情况下是必要的,因为它可以提高代码的效率并确保正确的初始化顺序。 首先,成员初始化列表在...
在C++编程语言中,构造函数的初始化列表是一种特殊的语法结构,用于在创建对象时初始化其成员变量。这个列表并不决定初始化的顺序,因为初始化顺序总是按照成员在类定义中的声明顺序进行。这一点在给定的描述和代码...
本文将深入探讨C++初始化列表的使用方法及其重要性。 初始化列表的基本语法是通过在构造函数的括号内使用冒号(:)后跟随一组以逗号分隔的成员变量名和它们的初始值。例如: ```cpp class MyClass { public: int ...
在C++编程语言中,初始化列表是一个非常重要的概念,它在创建对象时用于设置成员变量的初始值。本文将深入探讨C++中的初始化列表,尤其是如何通过初始化列表向数据成员传递值。 首先,让我们理解什么是初始化列表。...
C++中,全局变量只能声明、初始化,而不能赋值 也就是说,下面这样是不被允许的: #include using namespace std; int a; a = 2; int main() { return 0; } 错误提示是: C++ requires a type specifier for all...
C++ Primer中在讲构造函数初始化列表的时候有这么一段话:无论是在构造函数初始化列表中初始化成员,还是在构造函数体中对它们赋值,最终结果是相同的。不同之处在于,使用构造函数初始化列表的版本初始化数据成员,...
3. **const 数据成员**必须在构造函数的初始化列表中初始化,因为它们是不可修改的,所以在构造函数体中赋值是不允许的。 4. **static 数据成员**则需要在类的外部初始化,因为它们是属于类的所有对象共享的,而不是...
2. **初始化列表初始化**:接着执行构造函数的初始化列表,其中的初始化顺序与成员变量声明的顺序一致,而不受初始化列表中实际顺序的影响。例如`A(int a_):a(a_){};` 3. **构造函数体内的初始化**:最后执行构造...
在这个"FFMPEG C++封装库使用示例之初始化"中,我们将深入探讨如何初始化 FFmpeg C++ 封装库,并了解如何打印其支持的多种格式。 首先,FFmpeg 的初始化通常涉及两个主要步骤:静态链接库和动态加载库。在 C++ 封装...
使用初始化列表完成这步操作在性能上有益处。什么好处呢?摆道理显得不够彻底。看书不如做实验。让我们结合执行过程来查看。考虑如下示例代码: Derive 类构造函数两个 Base 类型的参数,分别赋给该类两个 ...