求高手帮帮忙,c++小代码

纯粹小白 2019-08-01 12:24:31
#include "stdafx.h"
#include<iostream>
#include<iomanip>
#include<cassert>
using namespace std;
class Date
{
int iMonth,iDay,iYear;
char format[128];
public:
Date(int m=0,int d=0,int y=0)
{
iMonth=m;
iDay=d;
iYear=y;
}
friend ostream& operator<<(ostream& os,const Date t)
{
cout<<"Month:"<<t.iMonth<<' ';
cout<<"Day:"<<t.iDay<<' ';
cout<<"Year:"<<t.iYear<<' ';
return os;
}
void Display()
{
cout<<"Month:"<<iMonth;
cout<<"Day:"<<iDay;
cout<<"Year:"<<iYear;
cout<<endl;
}
};
template<class T,int b>
class Array
{
T elem[b];
public:
Array(){}
T& operator[](int sub)
{
assert(sub>=0&&sub<b);
return elem[sub];
}
};


int _tmain(int argc, _TCHAR* argv[])
{
Array<Date,3>dateArray;
Date dt1(1,2,3);
Date dt2(4,5,6);
Date dt3(7,8,9);
dateArray[0]=dt1;
dateArray[1]=dt2;
dateArray[2]=dt3;
for(int i=0;i<3;i++)
{
cout<<dateArray[i]<<endl;
}
Date dt4(10,11,13);
dateArray[3]=dt4;
cout<<dateArray[3]<<endl;
return 0;
}
Array<Date,3>dateArray这句为什么定义的数组是dateArray[3],不应该是dateArray.elem[3]吗?
...全文
68 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mylovecyjc 2019-08-02
  • 打赏
  • 举报
回复
你这里重载了[]操作符,T& operator[] 返回一个T类型的大小为 sub的数组(如果b>sub 就是要你设定的条件),

Array<Data,3> dateArray //定义一个Data 类型的切长度为3名为dateArray类型的数组。dateArray.elem[3] 这个不是定义数组
mylovecyjc 2019-08-02
  • 打赏
  • 举报
回复
你这里重载了[]操作符,T& operator[] 返回一个T类型的大小为 sub的数组(如果b>sub 就是要你设定的条件),

Array<Data,3> dateArray //定义一个Data 类型的切长度为3名为dateArray类型的数据。dateArray.elem[3] 这个不是定义数组

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧