指针的应用 到底那里出错了 问题好大
来源:互联网 发布:声音处理 傻瓜 软件 编辑:程序博客网 时间:2024/05/01 09:27
#include<iostream>using namespace std;class MyArray{private: int *arr; //用于存放动态分配的数组内存首地址 int size; //数组大小public: MyArray(int sz=50); MyArray(int a[],int sz); //由一个内置类型的数组初始化~MyArray(void){ delete [] arr;} //析构函数,注意释放空间 MyArray &operator =(const MyArray &A); //重载“=”使得数组对象可以整体赋值 bool operator == (MyArray& A); //重载==,使得Array对象能整体判断两个数组是否相等(size相等且对应元素相等) friend ostream& operator << (ostream& out,MyArray& A);//重载<<,输出数组 int GetSize(void) const; //取数组大小;};//以下为类成员函数的定义MyArray::MyArray(int az=50){ arr=new int[az]; size=az; for(int i=0;i<size;i++) *(arr+i)=0;}MyArray::MyArray(int a[],int sz){ arr=new int[sz]; size=sz; for(int i=0;i<size;i++) *(arr+i)=a[i];}MyArray &MyArray::operator =(const MyArray &A){ if(size!=A.size){delete []arr; size=A.size; arr=new int[size];}int n=A.size; int* destptr=arr; int* srcptr=A.arr; while(n--) { *destptr=*srcptr; destptr++; srcptr++; } return *this;}bool MyArray::operator == (MyArray& A){ bool no=true;if(size!=A.size){ no=false;}else{int n=A.size; int* destptr=arr; int* srcptr=A.arr; while(n--) { if(*destptr!=*srcptr){no=false;break;} destptr++; srcptr++; } } return no;}ostream& operator << (ostream& out,MyArray& A){ for(int i=0;i<A.size;i++){ out<<*(A.size+i)<<" "; } out<<A.size; return out;}int MyArray:: GetSize(void) const{ return size;}//测试函数int main(){ int a[10]= {1,2,3,4,5,6,7,8,9,10}; int b[10]= {4,5,6,7,8,9,10,11,12,13}; MyArray arr1(a,10); //测试用内置的数组初始化新定义的数组对象 MyArray arr2(b,10); MyArray arr3(10); //测试只指定大小的新数组对象的初始化 cout<<arr1; //测试对<<的重载 cout<<arr2; //测试对<<的重载 cout<<arr3; //测试对<<的重载 cout<<"The size of arr1 is: "<<arr1.GetSize()<<endl; //测试GetSize()成员函数 return 0;}
错误的原因:
--------------------Configuration: Cpp1 - Win32 Debug--------------------Compiling...Cpp1.cppC:\Documents and Settings\Administrator\桌面\Cpp1.cpp(21) : error C2572: 'MyArray::MyArray' : redefinition of default parameter : parameter 1 C:\Documents and Settings\Administrator\桌面\Cpp1.cpp(9) : see declaration of 'MyArray::MyArray'C:\Documents and Settings\Administrator\桌面\Cpp1.cpp(76) : error C2248: 'size' : cannot access private member declared in class 'MyArray' C:\Documents and Settings\Administrator\桌面\Cpp1.cpp(7) : see declaration of 'size'C:\Documents and Settings\Administrator\桌面\Cpp1.cpp(77) : error C2248: 'size' : cannot access private member declared in class 'MyArray' C:\Documents and Settings\Administrator\桌面\Cpp1.cpp(7) : see declaration of 'size'C:\Documents and Settings\Administrator\桌面\Cpp1.cpp(77) : error C2100: illegal indirectionC:\Documents and Settings\Administrator\桌面\Cpp1.cpp(79) : error C2248: 'size' : cannot access private member declared in class 'MyArray' C:\Documents and Settings\Administrator\桌面\Cpp1.cpp(7) : see declaration of 'size'C:\Documents and Settings\Administrator\桌面\Cpp1.cpp(94) : error C2593: 'operator <<' is ambiguousC:\Documents and Settings\Administrator\桌面\Cpp1.cpp(95) : error C2593: 'operator <<' is ambiguousC:\Documents and Settings\Administrator\桌面\Cpp1.cpp(96) : error C2593: 'operator <<' is ambiguous执行 cl.exe 时出错.Cpp1.obj - 1 error(s), 0 warning(s)
- 指针的应用 到底那里出错了 问题好大
- 容易出错的指针问题
- 问题在客户那里出现了
- 一个关于指针的问题,问题很简单,但容易出错,希望大家提出好的解决方法~~~
- 中文问题的一些建议,转载,那里找的,忘记了
- 我们的创新意识那里去了?
- 我的资源去那里了?
- 目前参与了一个比较大的工程,一些方法要好好学习,并应用其中。
- 外面下了好大的雨
- 仅从性能上分析 java到底和C /C++ 差在了那里
- 断点续传,ibm那里拿来的文章,真心好,学习下
- 我刚写的边界识别程序,到底哪里出错了,郁闷啊
- 我那里错了?
- 昨天去老胡那里了
- 耳朵的问题大了
- 人家那里抄来的,自己又写了点
- 之前的博客文章跑那里去了
- 我用VC写的代码那里错了
- oracle索引
- Android换肤功能设计与实现
- 笔记本除尘后果然安静了
- 编程之美—24点游戏
- 价格统计
- 指针的应用 到底那里出错了 问题好大
- free()释放动态内存的函数
- android中GridView的使用
- asp.net(对象)
- 网友提供Slides:CVPR2013显著性方面文章速读
- 类模板 实现链表
- QTP自动化测试技术培训课程 7月开设 (买课程,送框架产品)
- 浅谈CSRF攻击方式
- Android之Adapter用法总结