C++ C++;自定义类返回

C++ C++;自定义类返回,c++,C++,我定义了一个类 目标:模拟字符串,但具有更多功能 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 }; 对于普通字符数组,我们可以使用

我定义了一个类

目标:模拟字符串,但具有更多功能

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 charray[10]="String";
cout<<charray;
charcharray[10]=“字符串”;

cout假设您正确完成了功能(在exmaple代码中,您没有为
str
分配内存),重载操作符
重载操作符
记住在调用
strcpy
之前将
str
指向敌人的内存……您不需要为
str
分配内存吗?您最好使用
std::string
。您也可以使用强制转换运算符强制转换为const char*,并直接输出。不,不,我只按指针使用exu char,它没有太多机会更改大小,如果它真的需要更改大小,现在是我开始一个全新的ex_char字符串的时候了谢谢你,我几乎忘了能够做到这一点,需要将操作符作为朋友添加到类中,以便它能够看到
str
;将其放在类的私有部分:
friend ostream&operator=(ostream&os,const ex_char&my_string)
@flyx Right,将其添加到答案中。为什么友元运算符=?我们不是在谈论operator@Echo我想那是个打字错误。
cout<<excharray;
ostream &operator<<(ostream &os, const ex_char &my_string)
{
    os << my_string.str;
    return os;
}