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++程序员来说,最好能够记住以上的几种方式的解释,因为它们很有可能成为考官藉以得意的考题。
  • 相关阅读:
    1208PHP基础
    数据库的查询
    1108 函数
    Shell脚本监控Linux某个后台进程,当进程死掉后重新启动服务,以httpd为例
    Windows下安装Zabbix agent
    Zabbix4.0如何监控Windows主机
    yum下载Zabbix4.0失败的解决方法
    TCP的三次握手与四次挥手理解
    MySQL主从复制原理
    Awk
  • 原文地址:https://www.cnblogs.com/feng801/p/1529348.html
Copyright © 2011-2022 走看看