搜索
首页 电脑/网络 程序设计 C/C++

想不通啊想不通 麻烦看看

  如图 右边的窗口是类的构造 中间的是main函数 其中 构造了225个类对象并进行赋值,对于x参数 和y参数 分别使用两个for循环赋值 x的参数赋值正确 参见左边的结果 但是对于y参数 为什么赋值前后j始终是1的情况下 赋值给cro[0]。y(不仅cro[0] cro[1] cro[2]都是)赋不进去呢?(50是默认构造定义的 参见右边类的代码) 我预期的结果是 cro0。
  x=1 cro1。y=1 cro1。x=1 cro1。y=2 cro2。x=1 cro2。y=3 。。。。 cro14。x=1 cro14。y=15 cro15。x=2 cro15。y=1 cro16。x=2 cro16。y=2 。。。
  。 cro223。x=15 cro223。y=14 cro224。x=15 cro224。y=15 这样就构成了一个15×15的格子 这是我的目的。

全部回答

2012-10-20

0 0
    二楼回答的部分正确,但是违背了面向对象的封装理念 你的Cross类将i和j全部定义成了public,因此二楼给你提供了上述初始化的方法,主要原因是你的定义违背了封装原则 你为Cross提供了构造函数,Cross(int x=0,iny y=0) 因此你的Cross cro[255]代码是可以自动初始化的,系统执行到这里,已经为你见了255个Cross类实例, 因此为了充分利用oop的封装特性,我建议你增加方法: Cross::setXY(int x=0;int y=0) 在你的循环中调用该方法:setXY(i,j) 问题就解决了 我建议你将x和y设置为private。
    。

2012-10-21

39 0
  楼主,上面两个都是脑子有坑的人,明显你错的很离谱。第一,你的目的是想输出15*15共225个空格的坐标,应该输出的是225个,你三个循环式是225*15*15个!int i=0,j=0,n,message; Cross cro[225]; for(n=0;n<=224;n++) { i++;j++; cro[n]。
  setXY(i,j) } 二楼的观点是对的!一楼就是二货~!。

2012-10-20

41 0
  问题出在:cro[n]=(i,j); (i,j)是逗号表达式,它的值是j,所以cro[n]=(i,j);相当于cro[n]=j; cro构造函数不能显式调用,即便可以调用,相当于调用格式为 cross(j,0)//因为只有一个参数 所以只是对x赋值为j,y根据函数定义,一直为50 赋值部分改为 cor[n]。
  x=i; cro[n]。y=j; 不是更清晰吗?。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
程序设计
电脑装机
操作系统/系统故障
硬件
笔记本电脑
百度
互联网
反病毒
软件
程序设计
C/C++
数据库
VB
JAVA相关
C#/.NET
VC++
汇编语言
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报