游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2115|回复: 4

求救啊~~~~

[复制链接]

5

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2007-7-3 16:38:00 | 显示全部楼层 |阅读模式
因为小弟刚从JAVA转到C++,所以对C++中的语法不太熟悉,所以请大家帮我看下下面这行代码~

class CBullet
{
public:
      int        m_ibullet[10];
        CBullet()
        {          
                for (int i=0;i<sizeof(m_ibullet);i++) //想得到数组的长度 不知道这样可不可以?
                {
                        m_ibullet= new CBullet();//生成子弹后放入数组里,结果编译通不过
                }
        }

        ~CBullet()
        {

        }
private:
protected:
};

extern CBullet *g_pBullet; [em4]

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2007-7-3 19:30:00 | 显示全部楼层

Re:求救啊~~~~

请LZ再回去翻翻书。

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-7-3 20:16:00 | 显示全部楼层

Re:求救啊~~~~

error C2440: “=”: 无法从“CBullet *”转换为“int”

JAVA不同类型相互赋值,这样直接也不行啊

虽说指针在这里就是一个32位的地址,能用同为32位的int装,但好歹也要强制转化一下(VC8下去掉/Wp64关闭64位兼容检测情况下),要这样:m_ibullet= (int)(new CBullet());

另外sizeof(数组名)得到的是该数组占用的字节数,而不是数组元素个数,这样能求:sizeof(m_ibullet)/sizeof(int)

但是即使这样改,还是很臭的代码,因为没特殊用途,没必要把指针赋值给int,而且代码里有new没delete,内存会泄漏

5

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
 楼主| 发表于 2007-7-3 20:34:00 | 显示全部楼层

Re:求救啊~~~~

感谢大虾指教~!看来我还要重温下C++

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2007-7-6 12:37:00 | 显示全部楼层

Re:求救啊~~~~

int m_ibullet[10];
m_ibullet= new CBullet();
当然不行了

int m_ibullet[10];定义的可不是引用,是用不着new的.再说int和CBullet也不是一个类型啊
如果你喜欢new,就写
CBullet* m_ibullet[10];
m_ibullet = new CBullet;
不过记得delete

从Java转学C++挺有难度吧?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 22:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表