代码如下
我的问题是
为什么输出结果是
mistake
sdafa-842150451
而不是
sdafamistake
a[0]
为什么先输出mistake然后在sdafa后返回了a[0]
而不是先输出sdafa后输出mistake 和a[0]
#include<iostream> #include<cmath> using namespace std; class arr{ public: arr(int s = 0); ~arr(); int & operator[](int i); private: int *p; int size; }; arr::arr(int s){ size = s; if (size == 0){ p = NULL; } else p = new int[size + 1]; for (int i = 1; i <= size; i++) p[i] = 0; } arr::~arr(){ if (!p) delete[] p; } int& arr::operator[](int i){ if (i<1 || i>size){ cout << "mistake" << endl; return p[0]; } return p[i]; } int main(){ arr a(5); cout << "sdafa" << a[9] << endl; }
onemoo
慕的地8582982
asd8532
相关分类