2016-04-09 10 views
-1
void Str::operator=(char* a) 
    { 
     delete[] str; 

     len = strlen(a); 
     str = new char[len + 1]; 
     strcpy (str, a); 

} 

void Str::operator=(class Str a) 
{ 
    delete[] str; 

    len = strlen(a.str); 
    str = new char[len + 1]; 
    strcpy(str, a.str); 


} 

これはクラスの一種です。私は「演算子を=(CHAR * a)のクラスのStrの」定義された、と私はこのような「main.cppに」で最初のものを使用することができます。クラスファクターはどのように関数で使用できますか?

Str a("Icecream"); 
a = "Cake\n"; 

、よく実行します。

しかし、 'operator =(class Str a)'はどのように使用できますか?

私はこのように試してみました:

Str c("Hamburger")l 

c = a; 

私はcはの情報を持っていると予想。私は、もはやハンバーガーの情報ではありません。 cはケーキです。

しかし、私はこのコードをコンパイルすると、cは呼び出しエラーの情報を持っています。

私は 'operator =(class Str a)'をどのように使用できますか?

+0

適切な書式設定、タイプミス、**エラーメッセージ**を回答してください。 – LogicStuff

+0

'char *'?これは2016年のC++です。 'char *'は使わないでください。 –

答えて

0

あなたはこのようにそれを宣言する必要があります。

void Str::operator=(const Str& a) 

代入演算子は、その右オペランド(したがって、&)への参照を必要とし(したがって、const)を変更しません。

関連する問題