关于输入输出操作符重载的一点疑问?
class A;
ostream& operator<<(ostream &os,A &a);
class A
{
friend ostream& operator<<(ostream &os,A &a);
int a;
public:
A(int x){a=x;}
~A(){}
};
ostream operator<<(ostream &os,A &a)
{
os<<a.a<<endl;
return os;
}
int main()
{
A a(78);
cout<<a<<endl;
return 0;
}
在VC 6.0下写的,我想知道为什么必须返回引用,我这样就编译出错?麻烦大家给出解释,谢谢!
ostream& operator<<(ostream &os,A &a);
class A
{
friend ostream& operator<<(ostream &os,A &a);
int a;
public:
A(int x){a=x;}
~A(){}
};
ostream operator<<(ostream &os,A &a)
{
os<<a.a<<endl;
return os;
}
int main()
{
A a(78);
cout<<a<<endl;
return 0;
}
在VC 6.0下写的,我想知道为什么必须返回引用,我这样就编译出错?麻烦大家给出解释,谢谢!
...全文
相关推荐
C++输入输出操作符重载的深入分析
在C++编程语言中,操作符重载是一种强大的特性,允许程序员为自定义类型赋予新的操作符含义。本文将深入探讨C++中的输入输出操作符重载,这对于理解和使用自定义类型进行I/O操作至关重要。
C++ operator关键字(重载操作符)的用法详解
操作符重载使得用户定义的类型可以像基本数据类型一样进行算术、比较和其他操作,提升了代码的可读性和易用性。### 为什么使用操作符重载?操作符重载的主要目的是为了增加类的表达力和方便性。
实现操作符重载 实现操作符重载
四、常见操作符重载示例1. 自增自减操作符:`++`和`--`2. 赋值操作符:`=`3. 流输入输出操作符:`<<`和`>>`4. 比较操作符:`==`、`!
详解C++赋值操作符重载
"C++赋值操作符重载的原理与注意事项"C++中的赋值操作符`=`是我们编程中常用的一个符号,它用于将值从右边的表达式复制到左边的变量。然而,在某些特定场景下,特别是涉及到自定义类型(如类或结构体
C++ 操作符重载
本主题将深入探讨操作符重载的概念、语法以及如何在实践中应用。一、操作符重载的基本原理操作符重载并不创建新的操作符,而是让一个操作符可以处理不同类型的操作数或者执行不同的操作。


