游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4890|回复: 12

关于类和对象的问题~

[复制链接]

35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
发表于 2006-11-7 18:26:00 | 显示全部楼层 |阅读模式
C++中创建一个普通类后,实例化几个对象,这些对象的数据是各自拥有的,这点没问题.
我想问的是那些公共方法呢,是不是每个类都有一份拷贝,不过这样的话挺浪费内存空间的~

248

主题

2674

帖子

2702

积分

金牌会员

Rank: 6Rank: 6

积分
2702
QQ
发表于 2006-11-7 18:35:00 | 显示全部楼层

Re:关于类和对象的问题~

函数就一份,因为函数并不能动态修改,没必要做几份。

35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
 楼主| 发表于 2006-11-7 18:38:00 | 显示全部楼层

Re:关于类和对象的问题~

谢谢茹枫~
就是一份的话,那么在多线程环境下方法(函数)可能会产生共享冲突,怎么办...还是我的担忧是多余的..

248

主题

2674

帖子

2702

积分

金牌会员

Rank: 6Rank: 6

积分
2702
QQ
发表于 2006-11-7 18:55:00 | 显示全部楼层

Re:关于类和对象的问题~

冲突是指数据,指令不会冲突.

35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
 楼主| 发表于 2006-11-7 19:01:00 | 显示全部楼层

Re:关于类和对象的问题~

临时变量呢..还有静态变量

248

主题

2674

帖子

2702

积分

金牌会员

Rank: 6Rank: 6

积分
2702
QQ
发表于 2006-11-7 19:06:00 | 显示全部楼层

Re:关于类和对象的问题~

不同的线程会产生自己的临时变量,根本就不在一起。
静态变量要测试一下,外部的变量一般是共享的。

35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
 楼主| 发表于 2006-11-7 19:08:00 | 显示全部楼层

Re:关于类和对象的问题~

临时变量好象不会冲突,是不是每个对象自己在运行方法时都创建自己对应该方法的临时变量?

看来我对程序的运行过程和计算机体系结构还不太熟~

25

主题

304

帖子

311

积分

中级会员

Rank: 3Rank: 3

积分
311
发表于 2006-11-7 21:29:00 | 显示全部楼层

Re:关于类和对象的问题~

局部变量是放在堆栈里
堆栈是线程独立的。

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2006-11-7 23:58:00 | 显示全部楼层

Re:关于类和对象的问题~

搂住不是把线程和进程搞混了吧?

多线程的资源是共享的。不会再去分配原有的资源。访问范围和普通单线程没有区别。

如果同时并发操作会产生冲突,解决方法自然是加锁咯。具体可以去看看<操作系统>。

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-11-8 12:45:00 | 显示全部楼层

Re:关于类和对象的问题~

LZ可以把class T的member value和member function看作成一个struct加上许多第一个参数是T &的函数
所以,多个class实例就是多个struct而已,而函数只会有一份
而数据在多线程情况下同时读写访问,就需要mutex之类的东西去对数据加锁,否则就乱套了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-27 16:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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