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();

  • 相关阅读:
    Android 编程代码手机定位
    Android 编程下快捷图标的创建
    Android 编程技巧设置 ADB 连接超时时间
    Android 编程下获得应用程序的签名
    Android 编程下如何获取有 Internet 访问权限的应用
    Android 编程下通知的发送
    Androidpn 消息推送总结
    Json 和 Jsonlib 的使用
    asp.net 控件不显示,提示无法找到
    做一课永远成长的苹果树!
  • 原文地址:https://www.cnblogs.com/Trojan00/p/9022567.html
Copyright © 2011-2022 走看看