C++重载输出符号

来源:百度知道 编辑:UC知道 时间:2024/09/21 00:33:31
求牛人帮忙找一道简单的关于c++重载输出符号,尽快。

上面的回答看起来似乎是正确的,因为可以正确的运行
但是不规范,主要表现在:(改后)
1)operator << 右边的参数(第二个参数)的类型应该是const Mystr&
而非一般的引用Mystr&(这样作非常重要,即保证了在输出的时候不改变原来对象的属性(数据成员的值);
第一个这个“错误”是你所关心的,下面的只是一些编程规范和细节问题,至少在这里不是重点:
2)类的名字最好首字母大写:如,Mystr;
3)char *getAdd(){return ch;}应该写成char *getAdd()const
{return ch;}这样作也非常重要,保证在调用getAdd()是不改变原来指针的指向(但是有一个缺点,我们的本意并非如此,而是在调用getAdd()时不改变指针所指向的字符串的内容);
4)由于用了strlen()函数,所以要加<cstring>头文件;
总之,也许是我太过苛刻,由于你是初学者,所以我给你说清楚,以免你以后再改,一次性就学会正确且标准的东西!
给你重新举个例子:(complex复数)
// complex.h
#include<iostream>
class Complex{
private:
double real;
double image;
public:
Complex():real(0.0), image(0.0) { }
Complex(double lhs, double rhs):real(lhs), image(rhs) { }
void setReal(double elem)
{
real = elem;
}
void setImage(double elem)
{
image = elem;
}
double getReal() const
{
return real;
}
double getImage() const
{<