您的位置:首页 > 大数据 > 人工智能

paip.提升用户体验----自定义<<移位操作符重载

2013-09-27 20:38 507 查看
paip.提升用户体验----自定义<<移位操作符重载

作者Attilax , EMAIL:1466519819@qq.com

来源:attilax的专栏

地址:http://blog.csdn.net/attilax

<<移位操作符重载..可以让代码更加自然..提升用户体验..



头文件

//////////////////

#ifndef QDEBUGHIDEC9_H

#define QDEBUGHIDEC9_H

#include <ostream>

#include <iostream>

#include "windows.h"

//#include<iostream.h>

// extern ostream PrintAti;

class qDebugHideC9

{

public:

qDebugHideC9();

public:

const qDebugHideC9& operator<<(char* str)const;//对字符串型的重载

const qDebugHideC9& operator<<(HWND str)const ;//对字符串型的重载

const qDebugHideC9& operator<<(WINBOOL str) const;//对字符串型的重载

};

#endif // QDEBUGHIDEC9_H

cpp文件

////////////////////////

#ifndef QDEBUGHIDEC9_cppx

#define QDEBUGHIDEC9_cppx

#pragma once

#include "qdebughidec9.h"

qDebugHideC9::qDebugHideC9()

{

//return *this;

}

const qDebugHideC9& qDebugHideC9::operator<<(char*str)const

{

//printf("%s",str);

return *this;//同样,这里也留意一下……

}

const qDebugHideC9& qDebugHideC9::operator<<(HWND str)const

{

//printf("%s",str);

return *this;//同样,这里也留意一下……

}

const qDebugHideC9& qDebugHideC9::operator<<(WINBOOL str) const

{

//printf("%s",str);

return *this;//同样,这里也留意一下……

}

qDebugHideC9 PrintAti;

#endif

调用手册

////////////////

#include <qdebughidec9.cpp>



qDebugHidec922<<"--";





参考:

///////////////////////

cout_百度百科.htm

嗯,我们已经基本上看出了cout的实质,不妨动动手,自己来实现一个cout的简化版(Lite),为了区分,我们把我们设计的cout对象命名的myout,myout对象所属的类为MyOutstream。我们要做的就是为MyOutstream类重载一系列不同类型的operator<<运算符函数,简单起见,这里我们仅实现了对整型(int)与字符串型(char*)的重载。为了表示与iostream断绝关系,我们不再用头文件iostream,而使用古老的stdio中的printf函数进行输出,程序很简单,包括完整的main函数,均列如下:

即,即使进行运算符重载,也只是有限自由!

friend ostream & operator << (ostream &os, const CPolynomial&)

operator是进行运算符重载的关键词,它后面就是重载的运算符,左侧是流,右侧是流处理的对象。这样你就可以处理如何输入或输出该对象

楼上说的是对的~~

一般在重载的时候用的上这个格式

ostream& operator<<(ostream &,XX);

[cpp] view plaincopy

friend ostream & operator <<(ostream & output,const PhoneNumber &);

friend istream & operator >>(istream & input,PhoneNumber &);

操作符重载函数包含两个参数,一个是对istream/ostream的引用,另一个是对用户自定义 类型的引用,当编译器遇到语句 cin>>phone时,编译器将生成函数调用operator>>(cin,phone) 同样,编译器督导cout<<phone时,编译器将生成函数调用operator<<(cout,phone) 同样,编译器督导cout<<phone时,编译器将生成函数调用operator<<(cout,phone)

2)注意友元函数不是类的成员函数,所以友元函数的实现和普通函数一样,在实现时不用"::"指示属于哪个类,只有成员函数才使用"::"作用域符号;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: