首页 > 其他 > 详细

重写操作符

时间:2014-06-27 12:56:53      阅读:300      评论:0      收藏:0      [点我收藏+]
// 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;
}

运行效果:

bubuko.com,布布扣

 

完。

 

重写操作符,布布扣,bubuko.com

重写操作符

原文:http://www.cnblogs.com/liyou-blog/p/3810621.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!