设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2410|回复: 13
打印 上一主题 下一主题

[讨论] C++的面向对象真是囧啊

[复制链接]

Lv2.观梦者

梦石
0
星屑
491
在线时间
339 小时
注册时间
2010-12-15
帖子
926

开拓者

跳转到指定楼层
1
发表于 2011-1-24 17:15:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
真是囧啊
根据面向对象的规则来讲,我要建立三个类就需要三个.h和三个.cpp
那么好了
a.h 里面内容是
#include b.h
b.h里面内容是
#include c.h
c.h里面内容是
#include a.h

那么好了,不论怎么写都会导致编译出错 - -

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
14
发表于 2011-1-27 01:59:16 | 只看该作者
回复 IamI 的帖子

制定这个标准的其中一个原因是简化了分析器,分析时只需要遍历一次代码就能构建完整的符号表,减少了编辑 - 编译 - 运行 - 调试周期,不过这主要是针对遗留系统或者大型工程而言,在其它场合下只不过是个极简主义的毒瘤罢了。

另一个最明显的好处是在源代码层,不依赖 IDE 就把接口和实现分开了 ~_~
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3132
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

13
发表于 2011-1-26 20:45:40 | 只看该作者
回复 tamashii 的帖子

直接开DX无压力= =v
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
491
在线时间
339 小时
注册时间
2010-12-15
帖子
926

开拓者

12
 楼主| 发表于 2011-1-26 20:41:43 | 只看该作者
IamI 发表于 2011-1-26 19:22
其实我早就投向C#的怀抱了……C++一直弄不懂头文件和cpp文件有啥区别= =b
头文件套头文件这种傻事最好还是 ...

要不是C#做游戏效果不好我早就用了 - -
其实也可以,用XNA,但是貌似XNA做出来的游戏需要很大的类库……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3132
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

11
发表于 2011-1-26 19:22:00 | 只看该作者
其实我早就投向C#的怀抱了……C++一直弄不懂头文件和cpp文件有啥区别= =b
头文件套头文件这种傻事最好还是少干……要么就上宏
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
491
在线时间
339 小时
注册时间
2010-12-15
帖子
926

开拓者

10
 楼主| 发表于 2011-1-26 19:15:48 | 只看该作者
chaochao 发表于 2011-1-24 19:15
编译器的问题。

难道让我用gpp编译器么
话说其他的编译器能支持vc库么
回复 支持 反对

使用道具 举报

Lv1.梦旅人

有事烧纸

梦石
0
星屑
154
在线时间
509 小时
注册时间
2005-10-22
帖子
6982

贵宾VX城市地图大赛冠军第1届RMTV比赛冠军第1届TG大赛冠军

9
发表于 2011-1-26 18:40:21 | 只看该作者
在cpp中包含.h
在.h里声明一下就行了

点评

VC2010特囧,如果在.h里面找不到包含的项目他报错  发表于 2011-1-26 19:16
神隐中,偶尔诈尸
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
110
在线时间
953 小时
注册时间
2007-4-25
帖子
805
8
发表于 2011-1-25 02:08:40 | 只看该作者
根据面向对象的规则来讲

这不是“面向对象的规则”,这是 C++ 标准以及 parser 的限制问题。大部分 C++ parser 默认都不会检查循环依赖性,直接从 #include 包含的位置展开代码,所以需要写代码的人自己去做。
[email protected]:~> repeat 1 fortune
Matz is nice, so we are nice.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

蝦米

梦石
0
星屑
95
在线时间
280 小时
注册时间
2006-7-5
帖子
587
7
发表于 2011-1-25 01:33:37 | 只看该作者
回复 tamashii 的帖子

Q:如果我要从a类调用b类里的东西,b类调用c类里的东西,c类调用a类里的东西怎么办

A:先声明其中类的存在
e.g.
class A;
class C{
//use sth in class A
}
class B{
//use sth in class C
}
class A{
//use sth in class B
}


江湖大虾仁于2011-1-25 01:34补充以下内容:
另外你编译报的什么错也要说下啊。。。
虾米的小站:
http://www.jhdxr.com
回复 支持 反对

使用道具 举报

Lv1.梦旅人

CHAOS

梦石
0
星屑
107
在线时间
245 小时
注册时间
2005-11-4
帖子
3521

贵宾

6
发表于 2011-1-24 19:15:31 | 只看该作者
编译器的问题。


chaochao于2011-1-24 19:16补充以下内容:
换个编译器试试看。
梦想世界,在你伸手!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-25 06:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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