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

运行出错,但是通过了单元巩固???

#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;
	}
private:
	int m_iX;
	int m_iY;
};
int main(void)
{
	//定义对象数组
    Coordinate coorArr[2]
    {
        {1,2},{3,4}
        
    };



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

在VS2010和Dev C++上都出现了运行失败。但是可以通过单元巩固。

/*                     Dec  c++  上的错误              */

D:\Documents\Dev-C++\test.cpp In function 'int main()':

23 25 D:\Documents\Dev-C++\test.cpp [Warning] extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]

23 38 D:\Documents\Dev-C++\test.cpp [Warning] extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]

23 38 D:\Documents\Dev-C++\test.cpp [Warning] extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]


/*                                             VS 2010  上的错误                   */

错误 1 error C2601: “coorArr”: 本地函数定义是非法的 d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 23

错误 2 error C2143: 语法错误 : 缺少“;”(在“}”的前面) d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 23

错误 3 error C2143: 语法错误 : 缺少“;”(在“,”的前面) d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 23

错误 4 error C2143: 语法错误 : 缺少“;”(在“{”的前面) d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 23

错误 5 error C2143: 语法错误 : 缺少“;”(在“}”的前面) d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 23

错误 6 error C2143: 语法错误 : 缺少“)”(在“;”的前面) d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 28

错误 7 error C2143: 语法错误 : 缺少“;”(在“)”的前面) d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 28

错误 8 error C2143: 语法错误 : 缺少“;”(在“)”的前面) d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 28

错误 9 error C2065: “i”: 未声明的标识符 d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 28

错误 10 error C2065: “i”: 未声明的标识符 d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 28

错误 11 error C2059: 语法错误:“)” d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 28

错误 12 error C2143: 语法错误 : 缺少“;”(在“{”的前面) d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 29

错误 13 error C2065: “coorArr”: 未声明的标识符 d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 30

错误 14 error C2065: “i”: 未声明的标识符 d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 30

错误 15 error C2228: “.printInfo”的左边必须有类/结构/联合 d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 30

错误 16 error C1903: 无法从以前的错误中恢复;正在停止编译 d:\documents\visual studio 2010\projects\test\test\demo2.5.cpp 31


正在回答

4 回答

#include <iostream>

using namespace std;

class Coordinate

{

    

public:

Coordinate()

{

}

// 打印坐标的函数

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;

}

你不要纠结为什么在哪上面可以而其他的不行,你只要知道哪有问题就可以

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

斐珺孜 提问者

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

虽然代码可能没有问题,但是纠结于    对象数组用初始化列表的方式传参   真的没有意义,

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

代码打错了 ,可以通过

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

我试了你的代码  ,

index.cpp: In function 'int main()':
index.cpp:23:8: error: conversion from 'int' to non-scalar type 'Coordinate' requested
     {(1,2),(3,4)
      ~~^~~
index.cpp:23:14: error: conversion from 'int' to non-scalar type 'Coordinate' requested
     {(1,2),(3,4)

通不过

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

举报

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

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

进入课程

运行出错,但是通过了单元巩固???

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