0

私はクラスを定義しました、

目的: 文字列をシミュレートしますが、より多くの機能を備えています

class ex_char
{
public:
    ex_char(char *input):len(strlen(input)){strcpy(str,input);}
    ...functions...
private:
    char *str; //where the char array is saved
    int len;   //length of the char array
};

通常の char 配列の場合、次を使用できます。

char charray[10]="String";
cout<<charray;

char 配列の内容を表示する

しかし、クラスの str プロパティの内容を表示するにはどうすればよいですか

cout<<excharray;
4

1 に答える 1

2

機能を正しく終了したと仮定すると (例のコードでは、 にメモリを割り当てていませんstr)、 operator<<をオーバーロードして、次のように使用できるようにします。cout<<excharray;

ostream &operator<<(ostream &os, const ex_char &my_string)
{
    os << my_string.str;
    return os;
}

クラスのプライベート要素の一部にアクセスする必要がcoutあるため、演算子を に追加する必要もありますfriend

于 2013-08-11T13:51:48.787 に答える