zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

        大家都知道当我们声明一个类时,系统会提供一个默认构造函数。当我们需要提供参数进行对类数据成员进行初始化时,就需要对类的带参构造函数进行重载。同时,如果我们需要调用默认构造函数进行类数据成员的初始化时,还需要对类的默认构造函数进行重载。也许就在这一块,我们很多人都遇到过同样的错误:

        当我们给出一个带默认参数的构造函数,并且重载一个默认构造函数,当我们定义一个类对象时,如果不传递参数,会出现二义性错误。因为我们没有传递参数时,系统默认又两种选择,一种是调用默认构造函数,另一种是调用带参构造函数并传递默认参数。

    如下

     1 class Complex  
     2 {  
     3 private:  
     4     float real, imag;  
     5 public:  
     6     Complex()  
     7     {  
     8         real = 0;  
     9         imag = 0;  
    10     }  
    11       
    12     Complex(float r = 0, float i = 0)  
    13     {  
    14         real = r;  
    15         imag = i;  
    16     }  
    17 };  
    18 int main()  
    19 {  
    20         Complex c;//error: call of overloaded ‘Complex()’ is ambiguous  
    21   
    22         return 0;  
    23 }  

    在编译的时候出现错误:

    1 <span style="color:#FF0000;">error: call of overloaded ‘Complex()’ is ambiguous</span>  

    对此,有一下两种解决方法

    1.去掉默认构造函数。

     1 class Complex  
     2 {  
     3 private:  
     4     float real, imag;  
     5 public:  
     6     Complex(float r = 0, float i = 0)  
     7     {  
     8         real = r;  
     9         imag = i;  
    10     }  
    11 }; 

    这时,当我们不给构造函数传递参数时,系统会传递默认参数以对类数据成员进行初始化。

    Complex c;

    相当于

    Complex c(0,0);

    2.去掉带参构造函数的默认参数

     1 class Complex  
     2 {  
     3 private:  
     4     float real, imag;  
     5 public:  
     6     Complex()  
     7     {  
     8         real = 0;  
     9         imag = 0;  
    10     }  
    11       
    12     Complex(float r, float i)  
    13     {  
    14         real = r;  
    15         imag = i;  
    16     }  
    17 };  

    Complexc;

    相当于

    Complex c();

  • 相关阅读:
    只使用代码创建WPF程序
    C#第一课
    VMware虚拟机的网络设置
    mac系统下配置Eclipse Java/C++ 开发环境
    【读书笔记】【物联网】《物物连起大世界物联网的应用与前景》
    移动硬盘无法格式化
    Win7下chm文件打不开的解决办法[转]
    MapInfo数据到ARCGIS数据Shapefile的转换
    mapx不具开发功能
    [读书笔记]熟悉SQLPLUS Oracle数据库环境
  • 原文地址:https://www.cnblogs.com/Trojan00/p/9022567.html
Copyright © 2011-2022 走看看