码迷,mamicode.com
首页 > 其他好文 > 详细

重写操作符

时间:2014-06-27 12:56:33      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   color   

// 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

重写操作符

标签:style   class   blog   code   http   color   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!