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

  • 相关阅读:
    [CodeForces]Codeforces Round #429 (Div. 2) ABC(待补)
    About Me
    2018-06-14
    Codeforces Codeforces Round #484 (Div. 2) E. Billiard
    Codeforces Codeforces Round #484 (Div. 2) D. Shark
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes
    Codeforces Avito Code Challenge 2018 D. Bookshelves
    Codeforces Round #485 (Div. 2) D. Fair
    Codeforces Round #485 (Div. 2) F. AND Graph
  • 原文地址:https://www.cnblogs.com/Trojan00/p/9022567.html
Copyright © 2011-2022 走看看