zoukankan      html  css  js  c++  java
  • 对象的初始化(转)

    对象的初始化

    对象必须正确初始化,才能正常使用:

    1. int i = 10;  
    2. cout << i << endl; 

    对象常常包括几种初始化的方式,我们在此归纳一下,并进行详细解析。其中:t是一个属于T类型的对象,x属于另外一个类X。

    T t:该形式直接调用T的构造函数,完成t的初始化。

    T t2(t):该形式调用T的拷贝构造函数T(const T &)。

    T t(x):该形式调用转换构造函数T(const X &)。

    T t2 = t:现在的大部分编译器都会将以上语句直接优化成:

    T t2(t);

    也就是说,它直接调用转换构造函数T(const X &)。

    T t2 = x:在编译器进行优化的情况下,它等价于:

    1. T t2(x); 

    也就是说,它直接调用转换构造函数T(const X &)。但是在没有进行优化的情况下,它会先构造一个对象,然后对其进行赋值:

    1. T temp(x);  
    2. T t2(temp); 
    C++的构造函数非常强大,因此也带来了C++对象的初始化非常简单、灵活。当然,这种"灵活"的C++语法也带来了副作用,即"捉摸不透",对于那些即将准备应聘笔试的C++程序员来说,最好能够记住以上的几种方式的解释,因为它们很有可能成为考官藉以得意的考题。
  • 相关阅读:
    ubuntu 12.04 install flash for firefox
    ubuntu 12.04 修改 grub 启动参数
    ubuntu 12.04 英文系统怎么调出 ibus输入法
    Ubuntu 12.04 临时禁用和启动面板
    git部署
    php 递归删除文件夹
    一‘php文件系统
    xml的解构与组装
    memcached的部署
    1,秒杀系统的设计
  • 原文地址:https://www.cnblogs.com/feng801/p/1529348.html
Copyright © 2011-2022 走看看