zoukankan      html  css  js  c++  java
  • C++中构造函数调用与申明方式的关系

    C++中,对于自定义的类比如GCStudent,需要声明并且初始化一个对象。

    GCStudent stu;

    GCStudent stu1 = stu;

    对于第一个stu的声明,系统肯定会去调用系统默认的构造函数。但是对于第二个stu1,系统调用的构造函数并不是系统默认的构造函数,而是调用拷贝构造函数。

    但是如果我们这样声明

    GCStudent stu;

    GCStudent stu1;

    stu1 = stu;

    这个时候stu1和stu2都调用默认的构造函数,在stu1赋值的时候,调用系统的等号运算符重载。

    其原理,一个类的对象必须调用一次构造函数,而且一个运算符肯定不可能出现歧义,因此对于第一种情况,= 号在这里只能调用默认的构造函数,而不能调用赋值运算符。

  • 相关阅读:
    初步了解Ajax
    什么是applet
    FilterLog代码分析
    Async分析
    HttpServletRequest hrequest
    xml的定义用途
    企业级与应用级的区别
    未来规划
    黄金点游戏
    hashCode与eqauls
  • 原文地址:https://www.cnblogs.com/BreakMind/p/focus.html
Copyright © 2011-2022 走看看