C++中对象初始化
在C++中对象要在使用前初始化,永远在使用对象之前先将它初始化。
1.对于无任何成员的内置类型,必须手工完成此事。
例如:
int x=0;
double d;
std::cin>>d;
2.内置对象以外的东西,初始化责任落在构造函数身上。确保每一个构造函数都将对象的每一个成员初始化。
例如:
class Point {......};
class Point3d
{
public:
Point3d(Point pt,int z);
private:
                   Point _pt;
int _z;
};
Point3d::Point3d(Point pt,int z):_pt(pt),_z(z) { } //初始化
Point3d::Point3d(Point pt,int z)
{
_pt=pt;
_z=z; //这些都是赋值,而非初始化
}
3.赋值和初始化时不同的
赋值: 对_pt 是先调用default构造函数,然后在立刻对它们赋予新值。(也可能copy assignment)
成员初值列(member initialization list):直接是copy构造。提高了效率。
对于_z两种方法效率相同。
4.利用成员初值列初始化时,要注意的。
C++有着十分固定的成员初始化次序。
初始化次序和对象的声明顺序是一致的。而不是成员初值列的顺序,在用一个对象给另个对象初始化,一定保证这个对象初始化在另个一个对象之前进行。
转载自:http://blog.csdn.net/cq20110310/article/details/7265656
C++中对象初始化的更多相关文章
- Java中对象初始化过程
		
Java为对象初始化提供了多种选项. 当new一个对象的时候,对象初始化开始: 1.首先,JVM加载类(只加载一次,所以,即使多次new对象,下面的代码也只会在第一次new的时候执行一次),此时, 静 ...
 - C++中的对象初始化
		
当对象在创建时获得了一个特定的值,我们说这个对象被初始化.初始化不是赋值,初始化的含义是创建变量赋予其一个初始值,而赋值的含义是把当前值擦除,而以一个新值来替代.对象初始化可以分为默认初始化.直接初始 ...
 - cocos2dx中对象的两步初始化
		
笔者进来开始研究cocos2d这个非常火爆的游戏引擎,在一番折腾后,总算在win7系统下把windows和android平台搭建好了.当然接下来是从官方示例中最简单的HelloCpp项目开始.笔者使用 ...
 - Hive_UDF函数中集合对象初始化的注意事项
		
UDF函数中定义的集合对象何时初始化 udf函数放在sql中对某个字段进行处理,那么在底层会创建一个该类的对象,这个对象不断的去调用这个evaluate(...)方法,截图如下: 1.1 如果说对 ...
 - SKSpriteNode对象初始化在iPhone 6 plus中显示不正确的分析及解决
		
一个SpriteKit项目在其他设备上运行都无问题(无论是真机或是模拟器),但是在iPhone6 Plus上会出现精灵对象纹理被过度放大的现象: 从上图中大家可以看到无论是主角或是道具球都过大了. 看 ...
 - C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法
		
1.自动属性(Auto-Implemented Properties) //以前的写法 .net2.0 private string _userName; public string UserName ...
 - C++派生类中如何初始化基类对象(五段代码)
		
今天收到盛大的面试,问我一个问题,关于派生类中如何初始化基类对象,我在想派生类对于构造函数不都是先构造基类对象,然后在构造子类对象,但是如果我们在成员初始化列表先初始化派生类的私有成员,在函数内去调用 ...
 - java中对象的初始化问题
		
最近又把java编程思想看了看.又有些收获.此书确实不错 java中的初始化相信很多人都知道.但是具体的初始化步骤,初始化几次确不一定.上代码 public class A{ public stati ...
 - java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包
		
Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...
 
随机推荐
- Linux修改命令提示符(关于环境参量PS1)
			
关乎环境参量的四个文件/etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile $$$:/etc/profile:此文件为系统的每个用户设置环境信息,当 ...
 - json在php中的使用之如何转换json为数组
			
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}' ...
 - 【OpenCV & CUDA】OpenCV和Cuda结合编程
			
一.利用OpenCV中提供的GPU模块 目前,OpenCV中已提供了许多GPU函数,直接使用OpenCV提供的GPU模块,可以完成大部分图像处理的加速操作. 基本使用方法,请参考:http://www ...
 - C++之多态的一个例子
			
[例12.1] 先建立一个Point(点)类,包含数据成员x,y(坐标点).以它为基类,派生出一个Circle(圆)类,增加数据成员r(半径),再以Circle类为直接基类,派生出一个Cylinder ...
 - gulp入坑系列(2)——初试JS代码合并与压缩
			
在上一篇里成功安装了gulp到项目中,现在来测试一下gulp的合并与压缩功能 gulp入坑系列(1)--安装gulp(传送门):http://www.cnblogs.com/YuuyaRin/p/61 ...
 - C#实现图标批量下载
			
本文略微有些长,花了好几晚时间编辑修改,若在措辞排版上有问题,请谅解.本文共分为四篇,下面是主要内容,也是软件开发基本流程. 阶段 描述 需求分析 主要描述实现本程序的目的及对需求进行分析,即为什么要 ...
 - Sharepoint学习笔记—习题系列--70-573习题解析 -(Q73-Q76)
			
Question 73You create a Web Part that calls a function named longCall.You discover that longCall tak ...
 - 自定义带进度条的WebView , 增加获取web标题和url 回掉
			
1.自定义ProgressWebView package com.app.android05; import android.content.Context; import android.graph ...
 - FileReader和FileWriter
			
FileReader和FileWriter 使用fileoutputstream类向文件写入数据与使用fileinputstream类从文件中将内容读取出来,存在不足,就是中文占两个字节, 搞不好就会 ...
 - 迭代器 iterator(二):  用iterator遍历arraylist
			
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址.迭代器修改了常规指针的接口,所谓迭代器是一种概念上的抽象:那些 ...