c++输入输出运算符重载
时间: 2023-05-29 14:05:41 浏览: 70
C++中的输入输出运算符重载是指重载<<和>>运算符,使得我们可以像使用cout和cin一样使用自定义类型的对象进行输入输出操作。
例如,对于一个自定义的Person类,我们可以通过以下方式重载输出运算符:
```cpp
#include <iostream>
using namespace std;
class Person {
public:
string name;
int age;
};
ostream& operator<<(ostream& os, const Person& p) {
os << "Name: " << p.name << ", Age: " << p.age;
return os;
}
int main() {
Person p = {"John", 25};
cout << p << endl;
return 0;
}
```
在上面的例子中,我们通过重载<<运算符,使得我们可以直接使用cout输出Person对象p,输出结果为:"Name: John, Age: 25"。
同样地,我们也可以通过重载>>运算符,使得我们可以像使用cin一样从标准输入读入自定义类型的对象。
相关问题
C++中复数的输入输出运算符重载
在C++中,复数类型的输入输出运算符重载可以使用以下方式实现:
```cpp
#include <iostream>
using namespace std;
class Complex {
private:
double real;
double imag;
public:
Complex() {}
Complex(double r, double i) : real(r), imag(i) {}
friend istream& operator>>(istream& in, Complex& c) {
cout << "请输入实部和虚部,用空格隔开:" << endl;
in >> c.real >> c.imag;
return in;
}
friend ostream& operator<<(ostream& out, const Complex& c) {
out << c.real << "+" << c.imag << "i";
return out;
}
};
int main() {
Complex c1;
cin >> c1;
cout << "您输入的复数为:" << c1 << endl;
return 0;
}
```
在上面的示例中,输入运算符重载函数`operator>>`使用`istream`类型的输入流对象`in`来获取用户输入的实部和虚部,并将其存储到复数对象`c`的成员变量中。输出运算符重载函数`operator<<`使用`ostream`类型的输出流对象`out`来输出复数对象`c`的实部和虚部。这里使用了友元函数来访问类的私有成员变量。
c++重载输入输出运算符
在 C++ 中,我们可以通过重载输入输出运算符来实现自定义的输入输出格式。下面是一个示例:
```cpp
#include <iostream>
using namespace std;
class Person {
private:
string name;
int age;
public:
friend ostream& operator<<(ostream& os, const Person& p);
friend istream& operator>>(istream& is, Person& p);
};
ostream& operator<<(ostream& os, const Person& p) {
os << "Name: " << p.name << ", Age: " << p.age;
return os;
}
istream& operator>>(istream& is, Person& p) {
cout << "Enter name: ";
is >> p.name;
cout << "Enter age: ";
is >> p.age;
return is;
}
int main() {
Person p;
cin >> p;
cout << p << endl;
return 0;
}
```
在这个例子中,我们定义了一个 Person 类,然后重载了输出运算符 `<<` 和输入运算符 `>>`。在输出运算符中,我们使用 `os` 对象输出 Person 对象的姓名和年龄;在输入运算符中,我们使用 `is` 对象从标准输入读入 Person 对象的姓名和年龄。在 `main` 函数中,我们首先使用输入运算符从标准输入读入 Person 对象,然后使用输出运算符将其输出到标准输出。
注意,输入运算符和输出运算符都是全局函数,并且需要声明为类的友元函数,以便访问类的私有成员。同时,输出运算符的第一个参数类型为 `ostream&`,输入运算符的第一个参数类型为 `istream&`,这样才能够对标准输出和标准输入进行操作。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)