频道栏目
首页 > 程序开发 > 软件开发 > Java > 正文
以多态的方式处理数组 产生的问题 实例代码
2014-01-11 11:29:10         来源:C++编程的专栏  
收藏   我要投稿
#include 
using namespace std;

class Array
{
public:
	Array()
	{
	}	
	virtual int operator [] (int i)
	{	
		return i;
	}
};
class More_Array :public Array
{
public:
	More_Array()
	{
	}
private:
	long data;
};

void PrintArray(Array  ay[], int len)
{
	for (int i = 0; i < len; i++)
	{
		printf("%d ",  ay[i][i]);
	}
}
int main(int argc, char* argv[])
{
	More_Array temp[5];
	PrintArray(temp, 5);
	return 0;
}

上面这段代码 就是以多态的方式处理数组, 一般会挂掉。

因为 指针在往前面去加的时候 它并不是加的 子类的sizeof的大小。


在 more effective C++条款三 有讲到这个问题


点击复制链接 与好友分享!回本站首页
上一篇:Spring Test整合JUnit4的使用
下一篇:基于反射机制的服务代理调用
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站