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 回答