zoukankan      html  css  js  c++  java
  • Inside The C++ Object Model(二)

    ============================================================================
    2-0. 关键字explicit被引入C++,提供给程序员一种方法,使他们能够制止“单一参数的constructor”被当做一个conversion运算符。


    ============================================================================
    2-1.Default Constructor的建构操作:
    “default constructor...在需要的时候被编译器产生出来”。关键字眼是“在需要的时候”,被谁需要?做什么事情? 期间的差别在于是程序的需要,还是编译器的需要。程序如果有需要,那是程序员的责任,此时并不会合成出一个default constructor。只有当编译器需要它的时候,才会合成它,并且被合成出来的constructor只执行编译器所需的行动。一个nontrivial default constructor就是“编译器所需要”的那种,必要的话会由编译器合成出来。下面讨论nontrivial default constructor的四种情况:
    (1)带有“Default Constructor”的Member Class Object。

    (2)“带有Default Constructor”的Base Class。

     

    (3) “带有一个Virtual Function”的Class。



    (4) “带有一个Virtual Base Class”的Class。



    总结:



    ============================================================================
    2-2. Copy Constructor的建构操作
    有三种情况,会以一个object的内容作为另一个class object的初值。
    (1)明确地以一个object的内容作为另一个class object的初值;
    (2)当object被当作参数交给某个函数时;
    (3)当函数传回一个class object时;

    Default Memberwise Initialization
    如果class没有提供一个explicit copy constructor时,当class object以“相同class的另一个object”作为初值时,其内部是以所谓的default memberwise initialization手法完成的,也就是把每一个內建的或派生的data member(例如一个指针或一数目组)的值,从某个object拷贝一份到另一个object身上。不过它并不会拷贝其中的member class object,而是以递归的方式施行memberwise Initialization。如下:


    Bitwise Copy Semantics(位逐次拷贝)

    ============================================================================
    2-3. 程序转化语意学



    ============================================================================
    2-4. 成员的初始化


    ============================================================================

  • 相关阅读:
    Do You See Me? Ethical Considerations of the Homeless
    ELDER HOMELESSNESS WHY IS THIS AN ISSUE?
    Endoflife support is lacking for homeless people
    html内联框架
    html字体
    html块 div span
    html列表
    html表格
    SQL Server管理员专用连接的使用   作为一名DBA,经常会处理一些比较棘手的服务无响应问题,鉴于事态的严重性,多数DBA可能直接用“重启”大法,以便尽快的恢复生产环境的正常运转,但是多数情况
    如何配置最大工作线程数 (SQL Server Management Studio)
  • 原文地址:https://www.cnblogs.com/yyxt/p/5995063.html
Copyright © 2011-2022 走看看