为了账号安全,请及时绑定邮箱和手机立即绑定

求大神帮我看看下面代码哪里有问题

下面是我的编码:

#include <iostream>

using namespace std;

class Coordinate

{

    

public:

    Coordinate(int x,int y):m_iX(x),m_iY(y)

{

   cout<<m_iX<<","<<m_iY<<endl;

}

// 打印坐标的函数

void printInfo()  

{

   cout<<"("m_iX<<","<<m_iY<<")"<<endl;

}

public:

int m_iX;

int m_iY;

};

int main(void)

{

//定义对象数组

    Coordinate coorArr[2];

    coorArr[0].m_iX=1;

    coorArr[0].m_iY=2;

    coorArr[1].m_iX=3;

    coorArr[1].m_iY=4;




//遍历数组,打印对象信息

for(int i = 0; i < 2; i++)

{

coorArr[i].printInfo();

}

return 0;

}


正在回答

3 回答

声明数组初始化过程中,会调用形参类型相匹配的构造函数,如果没有指定数组元素的初始值,就会调用默认构造函数。你在声明的时候没有指定初始值,所以需要调用默认构造函数。如果不调用默认构造函数的话,就需要设置初始值,就是我上一条回复你的那句。

1 回复 有任何疑惑可以回复我~
#1

慕运维9949243 提问者

非常感谢!
2018-08-08 回复 有任何疑惑可以回复我~

// 打印坐标的函数

void printInfo()  

{

   cout<<"("m_iX<<","<<m_iY<<")"<<endl;

}

这句代码写错了,这里的"号已经产生混乱了,要分开写

cout << "(" << m_iX << "," << m_iY << ")" << endl;


0 回复 有任何疑惑可以回复我~

类中声明一个默认构造函数  Coordinate(){}。

还有打印坐标函数输出中m_iX前面少了<<

1 回复 有任何疑惑可以回复我~
#1

慕运维9949243 提问者

为啥声明默认构造函数? 打印坐标函数m_iX前有<<
2018-08-07 回复 有任何疑惑可以回复我~
#2

慕数据2169645 回复 慕运维9949243 提问者

Coordinate coorArr[2]={Coordinate(1,2),Coordinate(3,4)}
2018-08-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(下)
  • 参与学习       70919    人
  • 解答问题       514    个

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

求大神帮我看看下面代码哪里有问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信