Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 数组类节点不工作_C++_Oop - Fatal编程技术网

C++ 数组类节点不工作

C++ 数组类节点不工作,c++,oop,C++,Oop,我有下面的代码,它没有显示任何内容 #include <iostream> using namespace std; class Array{ private : long *a; public: Array(int size){ a=new long[size]; } void set(int index,long value){ a[index]=value; }

我有下面的代码,它没有显示任何内容

#include <iostream>
using namespace std;
class Array{

private :
     long *a;
public:
       Array(int size){
        a=new  long[size];


       }
       void set(int index,long  value){
        a[index]=value;

       }
       long get(int index){
        if (index<0 || index>(sizeof(a)/sizeof(long)))    {

         exit(1);
        }
         return a[index];
       }







} ;
int main(){

      Array* arr=new Array(100);
             int number=0;
             int j=0;
             arr->set(0,11);
             arr->set(1,12);
             arr->set(2,14);
             arr->set(3,15);
             arr->set(4,20);
             arr->set(5,34);
             arr->set(6,50);
             arr->set(7,10);
             arr->set(8,80);
             arr->set(9,100);
             number=10;
             int search=80;
              for (int i=0;i<number;i++){
                  if (arr->get(i)==search){
                   cout<<"search found "<<endl;
                   break;
                  }



                  }


                    //cout<<arr->get(8)<<endl;  

 return 0;
}
#包括
使用名称空间std;
类数组{
私人:
长*a;
公众:
数组(整数大小){
a=新长[尺寸];
}
无效集(整型索引,长值){
a[指数]=数值;
}
长get(整型索引){
if(索引(sizeof(a)/sizeof(long))){
出口(1);
}
返回一个[索引];
}
} ;
int main(){
阵列*arr=新阵列(100);
整数=0;
int j=0;
arr->set(0,11);
arr->set(1,12);
arr->set(2,14);
arr->set(3,15);
arr->set(4,20);
arr->set(5,34);
arr->set(6,50);
arr->set(7,10);
arr->set(8,80);
arr->set(9100);
数字=10;
整数搜索=80;
for(int i=0;iget(i)=搜索){
库特
是错误的。您使用的是指针的大小,而不是数组的大小


是错误的。您使用的是指针的大小,而不是数组的大小…

问题在于您假定
sizeof(a)
为您提供
a
指向的内存大小。它不提供。它为您提供指针大小。构造函数中有
size
参数-只需将其保存在成员变量中,稍后用于边界检查。

问题在于您假设
sizeof(a)
提供了
a
指向的内存大小。它没有。它提供了指针的大小。构造函数中有
size
参数-只需将其保存在成员变量中,稍后用于边界检查。

这是家庭作业吗?您认为
sizeof(a)/sizeof(long)的值是多少
?这是家庭作业吗?你认为
sizeof(a)/sizeof(long)的值是多少?
int k=10;//delete it;
                     for (int j=0;j<number;j++)
                         if (arr->get(j)==k)
                              break;
                          for (k=j;k<number-1;k++)
                              arr->set(k,arr->get(k+1));
                    number--;

                     for (int j=0;j<number;j++)
                         cout<<arr->get(j)<<"  ";
index>(sizeof(a)/sizeof(long))