Using C++
posted on 2010-06-11 17:03 codejie 阅读(1892) 评论(12) 编辑 收藏 引用 所属分类: C++
呵呵 很简单 代码不能这么写 类的依赖关系不允许形成循环,放你这里就是两个类不能互相都依赖对方。 回复 更多评论
@风吹云散尽是的,把CB类去掉,只留下typedef int INT;void Func(CA::TVector& vt);这样也不行,相对于空间概念来说是namespace和class是一样的。我现在想知道再不增加新文件的情况下,当然了,也别合成一个文件,有解决办法不? 回复 更多评论
只需要将 nameA.h 中的:#include "classA.h"替换为:class CA;即可。 回复 更多评论
@taowangCA::TVector这个类型怎么让编译器知道呢?这种前置方式一般只能用于nameA.h中CA的指针或引用实例。当含有类型时,就不好用了~ 回复 更多评论
不是合并成一个文件,而是你要拆成3个文件。 回复 更多评论
@陈梓瀚(vczh)嗯,我只是不想增加新文件。这里只是个例子,实际代码太多,要移动到新文件中,工作量太大了,所以想看看有没有其它方法~ 回复 更多评论
@codejie 文件多容易管,实在不行你用C#,人家没有头文件,声明没有顺序,类库还大,多爽 回复 更多评论
个人觉得这种情况,就设计感觉上来说就不好。互相耦合。单就这个情况来看,可以把类型抽离到一个公共文件里。如果是对类本身的依赖,当然可以使用前置声明。 回复 更多评论
@陈梓瀚(vczh)在我看来文件超过15个就难管了,一般这时我就开始封装库了。。。C#就扯远了,BASIC不更好,变量都可以不定义呢。。。咱们还是C++吧~ 回复 更多评论
@Kevin Lynx说的没错,变成这样是有历史原因的,写着写着就开始耦合了,都没有注意到。。。目前做的修改就是在分离类型,只是有点乱,一时还真不好下手,所以总想着有没有偷懒的法子。。。(看来没有了。。。) 回复 更多评论
@codejie 几百个文件上千个类我觉得都是正常的吧,功能一多代码自然就要多了……毕竟文件那只是物理结构,跟代码一点关系都没有,何必在意。你是编程还是编文件啊…… 回复 更多评论
@陈梓瀚(vczh)说来惭愧,从来没自己写过一个超过100+个文件的工程,都很零散。。。 回复 更多评论