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

为什么会出错

coorArr不是对象吗 为什么执行不了

正在回答

4 回答

数组当中每一个元素,不管是什么类型都是对象。

你传递进去一个1,2,这算什么?最多只能算是一个int类型的数据

并且也根本调用不了Cooordinate这个类的构造方法

所以,你需要在数组元素当中 = { Coordinate(1,2)}

这才是一个对象的元素

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

既然都是public成员,可以不改构造函数,直接这样写:

    Coordinate coorArr[2];

    coorArr[0].m_iX = 1;

    coorArr[0].m_iY = 2;

    coorArr[1].m_iX = 3;

    coorArr[1].m_iY = 4;


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

coordinate不是类名吗

0 回复 有任何疑惑可以回复我~
#include <iostream>
using namespace std;
class Coordinate
{

public:
	Coordinate(int x,int y)
	{ m_iX=x;
	  m_iY=y;
	}
	// 打印坐标的函数
	void printInfo()
	{
	   cout<<"("<<m_iX<<","<<m_iY<<")"<<endl;
	}
private:
	int m_iX;
	int m_iY;
};
int main(void)
{
	//定义对象数组
   Coordinate coorArr[2] = {Coordinate(1,2),Coordinate(3,4)};

	//遍历数组,打印对象信息
	for(int i = 0; i < 2; i++)
	{
		coorArr[i].printInfo();
	}
	return 0;
}

Coordinate coorArr[2] = {Coordinate(1,2),Coordinate(3,4)};

这句错了,数组里面需要再次用类名调用构造函数

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

举报

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

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

进入课程

为什么会出错

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