2016-07-12 14 views
0

エラーのコンパイル中Error- complex :: sumの複数宣言。Error- complex :: sumの複数宣言

#include<iostream.h> 
#include<conio.h> 
#include<string.h> 

class complex 
{ 
    float a,b; 
public: 
    complex (float m,float n) 
    { 
     a=m; 
     b=n; 
    } 

    complex sum (complex complex); 
    void show (complex); 
}; 
complex complex::sum (complex c1 complex c2) 
{ 
    complex c3; 
    c3.a=(c1.a)+(c2.a); 
    c3.b=(c1.b)+(c2.b); 
    return c3; 
} 
void complex::show (complex c3) 
{ 
    cout<<c.a<<"+"<<c.b<<"i"; 
} 
int main() 
{ 
    clrscr(); 
    complex c1,c2,c3 ; 
    c1=complex(4.2,9.3); 
    c2=complex(12.5,6.5); 
    c3=sum(c1,c2); 
    cout<<"c1="<<c1.show; 
    cout<<"c2="<<c2.show; 
    cout<<"c3="<<c3.show; 
    getch(); 
    return 0; 
} 

私はcomplex::sumエラーのため、この複数の宣言を削除するために何をすべき。私はturbo C++ 4.0バージョンを使用しています。

+0

実際にコンパイラがあなたがしていることを知っているように、あなたの関数の引数の間にコンマを置くべきです。 –

+0

コードは完全に無関係で、複数の理由でこのエラーでコンパイルに失敗することがあります。 [最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)を追加してください。 – Sergey

+0

iostream.h?本当に?あなたは何の本を読んでいますか? –

答えて

0

あなたは、関数は2つのパラメータを使用しているため、この宣言

complex sum (complex, complex); 
        ^^ 

にカンマを使用する必要があります。

また、関数はそれはクラスがデフォルトのコンストラクタを持っていないことを考慮してください

/* const */ complex complex::sum (const complex &c1, const complex &c2) const 
{ 
    complex c3(c1.a + c2.a, c1.b + c2.b); 
    return c3; 
} 

を書くために、より正確になり、適切

complex complex::sum (complex c1, complex c2) 
           ^^^ 
{ 
    complex c3(c1.a + c2.a, c1.b + c2.b); 
    return c3; 
} 

定義する必要があります。

cout<<"c1="<<c1.show(); 
        ^^^ 
cout<<"c2="<<c2.show(); 
        ^^^ 
+0

あなたはカンマを意味すると思います... –

+0

@AkshatMahajanあなたは正しいです:) –

+0

@VladfromMoscowはカンマで再びコンパイルされました。 3つの警告でエラーが1から9に増加しました – manish

0

は、最終的に出力を得たよう

機能のショーは一例

void show() /*const*/; 

と機能のためのように静的またはパラメータなしのいずれかで宣言されなければならないが呼び出されなければなりません。ここでは、作業コード

#include<iostream.h> 
#include<conio.h> 
#include<string.h> 

class complex 
{ 
    float a,b; 

public: 
    complex (float m,float n) 
    { 
    a=m; 
    b=n; 
    } 

    complex sum (complex, complex); 
    void show (complex); 
}; 
complex complex::sum (complex c1,complex c2) 
{ 

    complex c3(c1.a+c2.a, c1.b+c2.b); 

    return c3; 
} 
void complex::show (complex c3) 
{ 
    cout<<c3.a<<"+"<<c3.b<<"i"; 
} 

int main() 
{ clrscr(); 
    float p,q,r,s; 
    cin>>p>>q>>r>>s; 
    complex c3(c3.sum(complex(p,q),complex(r,s))); 

    cout<<"c3="; 
    c3.show(c3); 
    getch(); 
    return 0; 
} 
関連する問題