网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月25日漏签0天
c++吧 关注:656,533贴子:2,118,319
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 294回复贴,共2页
  • ,跳到 页  
<<返回c++吧
>0< 加载中...

【关于……算符重载】其实应该不难……但是……但是……

  • 只看楼主
  • 收藏

  • 回复
  • patricia_xiao
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
就是……人家想写一个二维数组类……(好吧我承认这是作业的一部分)
然后……呃,是写成一位数组的,就像这样:
private:
int row, col;
int * array;
public:
Array2()
{
array = NULL;
}
Array2(int Row, int Col)
{
row = Row;
col = Col;
array = new int[row * col];
}
嗯,其实,到此为止还好,但是老师是这么要求的:
比如有 Array2 a;吧,
可以直接用a[i][j]或者a(i,j)的形式访问“二维数组”的元素……
呃,大概是需要对()和[]重载吧……
但是果断地在这个节骨眼上拙计了……
我说……这看起来不现实啊,比如:
int operator [] (int n)
{
return array[n];
}
???不对啊哪哪都不对啊,有两个[]呢,要算出具体是哪一号元素必须得两个[]里的元素都弄出来啊……
还是说……
嗯……
用一维数组实现的点子本身就很扯?可是,据说助教是这么说的啊……
呃,总而言之,咳咳咳,有人指点一下么……


  • patricia_xiao
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
然后难得不恶意卖萌一次大家就让俺这么秒沉么?!不行不行,自己顶起!


2026-04-25 10:01:36
广告
不感兴趣
开通SVIP免广告
  • patricia_xiao
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
……百度贴吧 之 单机模式……


  • patricia_xiao
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
……真不知道该不该为这么水的问题圈一堆老怪物级别的前辈们进来看人家笑话……


  • patricia_xiao
  • ^
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
想一想还是不圈了吧……太丢人了……


  • 寒云似雾
  • +
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
template<typename T>
class Array2D{
T* base;
int r,c;
T* operator[](int i){return base+i*c;}
T* operator(int i,int j){return (*this)[i][j];}
}


  • 寒云似雾
  • +
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如果需要泛化实现,请参考: boost::multi_array


  • 寒云似雾
  • +
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是一只北大的么?


2026-04-25 09:55:36
广告
不感兴趣
开通SVIP免广告
  • 关签
  • +
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
卖萌君>O<


  • ⑨chu
  • +
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
int* operator[](int 行)
{
return &m_array[行元素数量*行];
}


  • 矮油嫑酱紫唉
  • ==
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
…………


  • Hope_20121221_
  • <<
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
看标题猜楼主.
代码为什么这么多空行..
为什么不直接用二维数组储存呢? 老师要求的?


  • 蒙面侍卫
  • +
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
将Array2[][]看成(Array2[])[]
以类模板的形式定义元素类(数据成员是一个数组,重载[]操作符),而数组类的数据成员是元素类数组(再重载数组类[]操作符)。
至于重载调用操作符(),直接在数组类中重载一次就可以了。


  • NEMESIS_T2
  • <<
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#define Matrix(T) vector<vector<##T##> >
大概是这个意思,宏语法怎么玩我忘了。或者百度:函数对象,爪机不便。或者你可以直接拍那拙计老湿一板凳。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 294回复贴,共2页
  • ,跳到 页  
<<返回c++吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示