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

为何不能用int *arp

2013-01-07 
为什么不能用int *arp#includeiostream#includecstdlib#includememory.h#includecstringusing nam

为什么不能用int *arp

#include<iostream>
#include<cstdlib>
#include<memory.h>
#include<cstring>
using namespace std;

class Array
{
    private:
       int len;
       int *arp;
    public:
       Array(int n=0);
       ~Array()
       {
           if(arp)
           {
               delete []arp;
           }
       }
       int GetLen()
       {
           return len;
       }
       void SetLen(int l)
       {
           if(l>0)
           {
               if(arp)
               {
                   delete [] arp;
                   arp=new int [l];
                   memset(arp,0,sizeof(int)*l);
                   len=l;
               }
           }
       }
       int& operator[](int index);
};

Array::Array(int n)
{
    if(n>0)
    {
        arp=new int[n];
        memset(arp,0,sizeof(int)*n);
        len=n;
    }
}

int& Array::operator [] (int index)
{
    if(index>=len||index<0)
    {
        cout<<"\nError:下标"<<index<88<"出界!"<<'\n';
        exit(1);
    }
    return arp[index];
}

int main()
{
    Array m1(10),m2(3);
    int i;
    for(i=0;i<10;i++)
    {
        m1[i]=i;
    }
    for(i=1;i<11;i++)
    {
        cout<<m1[i]<<" ";
    }
    cout<<endl;
    m2[2]=26;
    cout<<"m2[2]="<<m2[2]<<endl;


    return 0;
}


求解里面定义的是int*arp  而书本上定义的是float *arp  请大神解释一下原因

[解决办法]
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!

[解决办法]
拜托copy也要看清楚啊


int& Array::operator [] (int index)
{
  if(index>=len
[解决办法]
index<0)
  {
  cout<<"\nError:下标"<<index<88<"出界!"<<'\n';
  exit(1);
  }
  return arp[index];
}


cout<<"\nError:下标"<<index<88<"出界!"<<'\n';
这句话能对吗?
[解决办法]
没有上下文环境参考,很难判断.

热点排行