O fluxo de bytes pode ser qualquer informação armazenada na memória.
Cin é um objeto da classe istream, e cout é um objeto da classe ostream .
'>>' e '<<' podem identificar automaticamente os tipos de entrada e saída.
As sobrecargas de operador de inserção e extração de sobrecarga podem apenas agregar formulários sobrecarregados de função , porque esses objetos não são personalizáveis.
istream&operator>>(istream& stream, 类名 &obj){
return stream;}//设这里有个Complex复数对象,要重载输入运算符friend istream&operator>>(istream& stream, Complex& obj){
//如果想在这里输出提示,就不是stream对象了,因为它是istream对象,这里用cout就好
cout <<"please input the real and the image"<< endl;
stream >> obj.real;
stream >> obj.image;return stream;}
Nota: (1) Não é que os objetos cin e cout não possam ser usados dentro de funções sobrecarregadas, eles devem ser usados de acordo com a situação específica e as necessidades do programador. (2) A referência do valor de retorno da função ao fluxo pode suportar entrada e saída contínuas.
Nota: Algumas funções são sempre eficazes depois de chamadas, mas algumas só têm efeito uma vez.
Manipulador de classe ios
Manipuladores sem parâmetros estão no arquivo de cabeçalho de iostream.h, e aqueles com parâmetros estão em iomanip.h.
Como usar
double a =3.1415;
cout <<setprecision(2)<< a;
O número de ativações do manipulador também é semelhante à função de formatação.
get / getline (char *, stringlength, separator)
O delimitador de get não será inserido na matriz, mas permanecerá no fluxo em buffer. Se houver caracteres inseridos no futuro, o delimitador será aceito. Mas getline eliminará o delimitador diretamente e isso não acontecerá.
Ao sobrecarregar o operador de saída, se o seguinte não for uma classe simples, mas uma operação de classe, o tipo de parâmetro não pode ser uma referência durante a sobrecarga.