首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于方括号重载的有关问题

2012-05-06 
关于方括号重载的问题我有一个Date类,里面有私有成员year、month、day,现在我想通过方括号[]修改Date成员的

关于方括号重载的问题
我有一个Date类,里面有私有成员year、month、day,现在我想通过方括号[]修改Date成员的值:

Date d;
string s;
s="month";
d[s]=11;//修改对象d的成员month为11;
d["year"]=2012;//修改对象d的成员year为2012;
d["day"]=12;//修改对象d的成员day为12;

怎么重载[]实现以上功能?

[解决办法]

C/C++ code
#include"stdafx.h"#include<iostream>using namespace std;class Date{private:    int year,month,day;public:    Date(int a=2012,int b=5,int c=2):year(a),month(b),day(c)    {    }    int& operator [](const char* strTag)    {        if (strcmp(strTag,"year")==0)        {            return year;        }        else if (strcmp(strTag,"month")==0)        {            return month;        }        else if (strcmp(strTag,"day")==0)        {            return day;        }    }    void output()    {        printf("YEAR:%d\n",year);        printf("Month:%d\n",month);        printf("Day:%d\n\n",day);    }};int main(void){    Date d;    d.output();    d["year"]=2013;    d["month"]=10;    d.output();    return(0);} 

热点排行