ostream

2024-04-28 00:38
文章标签 ostream

本文主要是介绍ostream,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

signal(SIGINT ,SIG_ING);
//SIG_ING代表忽略SIGINT信号,SIGINT信号代表由InterruptKey产生,通常是CTRL +C 或者是DELETE。发送给所有ForeGround Group的进程

SIGHUP发送给具有Terminal的ControllingProcess,当terminal被disconnect时候发送SIGPIPE在reader中止之后写Pipe的时候发送



C++运算符重载(11) - 重载<<和>>操作符

运算符 “<<” 用于流输出,而运算符“>>”用于流输出。

在开始重载这些操作符之前,必须注意下面的事项:
1) cout是输出类的对象,而cin是输入类的对象
2) 这些操作符必须重载为全局函数。如果想要让它们可以访问私有成员,则必须定义为友元。

为何必须重载为全局函数?
如果操作符重载为一个成员函数,则它必须是对象的成员,且出现在操作符的左侧。
例如,考虑表达式 “ob1 + ob2″ (假设ob1和ob2是两个不同类的对象)。为了编译通过,需要在类'ob1'中重载'+'运算符,或者使得'+'是一个全局函数。
运算符‘<<'和 '<<'的调用方式一般为'cout << ob1'和'cin << ob1'. 所以如果将它们做为一个成员函数,并且对象能出现在操作符的右侧,则我们需要将ob1和ob2定义为ostream类和istream类的成员。显然这是不太现实的。因此, 一般将这些操作符重载为接收两个参数的全局函数,其中一个参数为cout, 另一个为自定义类的对象。

下面程序演示了运算符 << 和 >> 的重载。

[cpp] view plain copy
  1. #include <iostream>  
  2. using namespace std;  
  3.    
  4. class Complex  
  5. {  
  6. private:  
  7.     int real, imag;  
  8. public:  
  9.     Complex(int r = 0, int i =0)  
  10.     {  real = r;   imag = i; }  
  11.     friend ostream & operator << (ostream &out, const Complex &c);  
  12.     friend istream & operator >> (istream &in,  Complex &c);  
  13. };  
  14.    
  15. ostream & operator << (ostream &out, const Complex &c)  
  16. {  
  17.     out << c.real;  
  18.     out << "+i" << c.imag << endl;  
  19.     return out;  
  20. }  
  21.    
  22. istream & operator >> (istream &in,  Complex &c)  
  23. {  
  24.     cout << "Enter Real Part ";  
  25.     in >> c.real;  
  26.     cout << "Enter Imaginary Part ";  
  27.     in >> c.imag;  
  28.     return in;  
  29. }  
  30.    
  31. int main()  
  32. {  
  33.    Complex c1;  
  34.    cin >> c1;  
  35.    cout << "The complex object is ";  
  36.    cout << c1;  
  37.    return 0;  
  38. }  
输出:
Enter Real Part 10
Enter Imaginary Part 20
The complex object is 10+i20
ostream是output stream的简称,即输出流。
在C++中用来输出。
一个典型的输出流对象就是在C++中标准输出流cout。
在C++中,很少自定义ostream的对象,更多的是直接使用cout。ostream这个类型,往往出现在<<操作重载中,作为某个类的友元函数出现。
比如对于class A, 可以定义
ostream & operator << (ostream &os, const A& a);
这样在调用A的对象var时,
cout << var ;
就等同于调用这个函数了。
函数里面一般会输出A中的一些成员变量。

这篇关于ostream的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941919

相关文章

C++ ostream类包含的一个简单的用于控制格式的成员函数setf precision

ostream类包含一些可用于控制格式的成员函数 这里介绍一个简单的setf(),可用于避免科学计数法 std::cout.setf(std::ios_base::fixed, std::ios_base::floatfield);这设置了cout对象的一个标记,命令cout使用定点表示法 std::cout.precision(3);表示cout在使用定点表示法时,

C++中类ostream的put成员函数

C++中类ostream的put成员函数 cout.put()到底是什么东西?其名称中为何有一个句点?函数 cout.put()是一个重要的 C++ OOP 概念-成员函数–的第一个例子。类定义了如何表示和控制数据。成员函数归类所有,描述了操纵类数据的方法。例如类 ostream 有一个put()成员函数,用来输出字符。只能通过类的特定对象(例如这里的 cout 对象)来使用成员函数。要通过对象

istream_iterator、ostream_iterator 使用初探

标准程序库定义有供输入及输出用的iostream iterator类,称为istream_iterator和ostream_iterator,分别支持单一型别的元素读取和写入。使用这两个iteratorclasses之前,先得含入iterator头文件: #include<iterator> 现在让我们看看如何利用istream_iterator从标准输人装置中读取字符串。就像所有的iter

ostream_iterator的使用方法

int main() {     cout << "please enter the numbers:";     int i;     vector<int> ivec;     while(cin >> i)     {         ivec.push_back(i);     }     ostream_iterator<int> output(cout, " ")

重载运算符operator + , ++ , 输出ostream

重载运算符operator + 的实现 (实现的是字符串) #include<iostream>#include<string.h>using namespace std;//程序=算法+数据//算法+数据==对象//定义类:某一类事物的抽象(在草稿纸上描述人类)class String{public://构造器String();String(const char*);St

C++之ostream标识函数flags、setf、unsetf、precision、width、imbue、getloc、xalloc、iword、pword等总结(二百一十)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android系统攻城狮 1.前言 本篇目的:理解C++之ostream函数flags、