2017-04-08 2 views
0

です。 2つの文字列を追加するために "+"をオーバーロードする。しかし、strcpyを使って2つの文字列を結合しようとすると、最初の文字列でcopyではなく最初の文字列に置き換えられます。演算子のオーバーロードに関するプログラミングと学習を学びました。 2つの文字列を追加するために "+"をオーバーロードするにはオペレータのオーバーロードに関するプログラミングと学習の新しい点は、

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

using namespace std; 

class String 
{ 
    char str[100]; 
public: 
    void operator +(String); 
    String() 
    { 
     strcpy(str,""); 
    } 
    String(char a[100]) 
    { 
     strcpy(str,a); 

    } 

}; 

void String::operator+ (String str1) 
{ char temp[100]; 
    strcpy(temp,str); 
    strcpy(temp,str1.str); 
    cout<<temp; 
} 
int main() 
{ 
    String s1=String("Hello");; 
    String s2=String("World"); 
    s1+s2; 


    return 0; 
} 

Output

答えて

0

私はあなたがこのような新しい文字列に二つの文字列の値を割り当てるために逃したと思う:

String nString = s1 + s2; 
1

あなたのコード内のエラーがでている です演算子のオーバーロード関数strcat - 文字列連結を使用する必要があります 詳細については、チェックアウト:String concatenation

+0

thnkあなた、それは本当にばかげた過ちです。 –

関連する問題