首页 > 代码库 > 重写操作符
重写操作符
// TestABCD.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <Windows.h>///////////////////////////////// Environment /////////////////////////////////////////class Environment{public: Environment(){ ZeroMemory(m_err, 255); }; void Print(){ printf(m_err); }; Environment& operator<<(char const* str); //类内的声明private: char m_err[255];};//类内的定义Environment& Environment::operator<<(char const* str) { int len=strlen(m_err); strcpy_s(m_err+len, 255, str); return *this;};///////////////////////////////// OuterEnvir /////////////////////////////////////////class OuterEnvir{public: OuterEnvir(){ ZeroMemory(m_msg, 255); }; void Print(){ printf(m_msg); };public: //如果用private,重写操作不能访问到私有成员变量。 char m_msg[255];};//类外的声明OuterEnvir& operator<<(OuterEnvir& envir, char const* str);//类外的定义OuterEnvir& operator<<(OuterEnvir& envir, char const* str){ int len=strlen(envir.m_msg); strcpy_s(envir.m_msg+len, 255, str); return envir;};//////////////////////////////////////////////////////////////////////////int _tmain(int argc, _TCHAR* argv[]){ Environment envir; envir<<"one err done, "<<"one err done.\n"; envir.Print(); OuterEnvir outer; outer<<"outer msg. "<<"outer msg.\n"; outer.Print(); getchar(); return 0;}
运行效果:
完。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。