The program has exited with code 0 (0x0)问题

xiaowenmanbu 2007-11-17 06:32:39

请看下这个程序的问题!


//Array.h


#include <iostream>

using namespace std;

class Array
{
friend istream &operator>>( istream &, Array & );
friend ostream &operator<<( ostream &, Array & );
public:
Array();
void setNumber( int , int );
void setNumber( int , int , const int & );
int getNumber( int, int ) const;
const Array operator+( const Array & );
private:
int a[2][3];
};
..............................................................
//Array.cpp

#include "Array.h"

Array::Array()
{
for ( int n = 0; n < 2; n++ )
{
for ( int m = 0; m < 3; m++ )
{
a[n][m] = 1;
}
}
}

void Array::setNumber( int i, int j)
{
cin >> a[i][j];
}

void Array::setNumber( int i, int j, const int &k )
{
a[j][j] = k;
}

int Array::getNumber( int i, int j ) const
{
return a[i][j];
}

const Array Array::operator+( const Array &array )
{
Array temp;

for ( int n = 0; n < 2; n++ )
{
for ( int m = 0; m < 3; m++ )
{
int num = a[n][m] + array.a[n][m];
temp.setNumber( n, m, num );
}
}
return temp;
}

istream &operator>>( istream &input, Array &array )
{
for ( int n = 0; n < 2; n++ )
{
for ( int m = 0; m < 3; m++ )
{
array.setNumber( n, m );
}
}

return input;
}

ostream &operator<<( ostream &output, Array &array )
{
for ( int n = 0; n < 2; n++ )
{
for ( int m = 0; m < 3; m++ )
{
array.getNumber( n, m );
}
}

return output;
}
..............................................................
//aa.cpp

#include <iostream>
#include "Array.h"

using namespace std;

void main()
{
Array a, b, c;

cout << "cin >> b";
cin >> b;
c = a + b;//The program 'G:\我的c++程序\11_1a\Debug\11_1a.exe' has exited with code 0 (0x0).
cout << "c = a + b" << endl;
cout << c;

}
...全文
2037 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryfdizuo 2007-11-17
  • 打赏
  • 举报
回复
类的成员函数里面不能调用setNumber(n,m,num),也根本不需要,直接就能访问私有的a数组啊,
setNumber( n,m,num)是提供类外面调用私有成员的接口。
ryfdizuo 2007-11-17
  • 打赏
  • 举报
回复
#include <iostream>

using namespace std;

class Array
{
friend istream &operator>> ( istream &, Array & );
friend ostream &operator<< ( ostream &, Array & );
public:
Array();
//没有必要
//void setNumber( int , int );
void setNumber( int , int , const int & );
int getNumber( int, int ) const;
const Array operator+( const Array & );
private:
int a[2][3];
};

//array.cpp

#include "Array.h "

Array::Array()
{
for (int i=0; i<2; i++)
{
for (int j=0; j<3; j++)
{
a[i][j] = 1;
}
}
}

void Array::setNumber( int i, int j, const int &k )
{
a[j][j] = k;
}

int Array::getNumber( int i, int j ) const
{
return a[i][j];
}

const Array Array::operator+( const Array& array)
{
Array temp;

for( int n = 0; n < 2; n++)
{
for(int m = 0; m < 3; m++)
{
temp.a[n][m] = a[n][m] + array.a[n][m];
//temp.setNumber( n, m, num );
}
}
return temp;
}

istream &operator>> ( istream &input, Array &array )
{
for (int i=0; i<2; i++)
{
for (int j=0; j<3; j++)
{
input >> array.a[i][j];
}
}
return input;
}

ostream &operator <<(ostream& output, Array& array)
{
for(int n=0; n < 2; n++)
{
for(int m = 0; m < 3; m++ )
{
output << array.getNumber(n, m) << " ";
}
}
output << endl;
return output;
}
//main
#include <iostream>
#include "Array.h "

using namespace std;

int main()
{
Array a, b, c;

cout << "cin >> b :";
cin >> b;
c = b + a;
cout << "c = a + b " << endl;
cout << c;

return 0;
}

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧