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;
}