以多态的方式处理数组 产生的问题 实例代码

来源:互联网 发布:java 线程池 返回结果 编辑:程序博客网 时间:2024/06/11 14:29
#include <iostream>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++条款三 有讲到这个问题


0 0