如何拆分一个比较大的cpp文件?

echozzjsjtu 2010-11-18 10:48:25
因为我定义了自己的类,且类有些复杂,文件中也用了很多这个类的数据类型,
开始的时候会出现internal heap limit reached; use /Zm to specify a higher limit
然后我把Zm一直增加到1456,到了1456就不能在增加了
可还是不能解决问题,我采取了下列措施:

我把自己定义的所有的类的数据成员的定义和成员函数的声明放到了一个class_def.h文件中
又把各类的成员函数的实现放到class_def.cpp中(从孙鑫视频第2集中学到的,他说定义类通常都这样做)
然后我有把我的程序中所有可以提取出来的函数的声明和实现分别放到了一个fun.h和一个fun.cpp中
然后我还把所有没有用到的数据定义都去掉,再去掉所有没有必要的代码(比如中间调试用到的cout代码行)

我现在的遇到问题是:
单独编译main.cpp文件,编译没有出现问题
可当我按F7或运行程序时,会出现错误:C1060:compiler is out of heap space
我从网上搜索问题出现的原因,可能还是我的main.cpp文件太大,有8000行,所以必须拆分文件,
可我之前都写比较简单的代码,对拆分文件的相关知识很不熟悉,不知道开分文件要遵守什么原则,都要注意那些事项
所以来求助。。。谢谢
...全文
528 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
奔跑吧猴哥 2010-11-19
  • 打赏
  • 举报
回复 1
难以一言蔽之,请看《重构》,《修改代码的艺术》。
luciferisnotsatan 2010-11-19
  • 打赏
  • 举报
回复
买本 《重构》 看看吧
bcj00000 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhao4zhong1 的回复:]

不要拆!
(一个过来人)
[/Quote]

有道理

抽象。。。。。。

不同功能不同类放到不同cpp
赵4老师 2010-11-19
  • 打赏
  • 举报
回复
不要拆!
(一个过来人)
begges 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhengjiankang 的回复:]
你不会是把8000行都写在一个main函数里面的吧。。
[/Quote]
牛逼
gules 2010-11-19
  • 打赏
  • 举报
回复
折分问题完全要根据你的程序的逻辑模块来进行,可以按逻辑功能来划分,也可以按面象对象来重构,这基本上是软件结构设计问题了。

参考《重构》一书吧。
zhengjiankang 2010-11-19
  • 打赏
  • 举报
回复
你不会是把8000行都写在一个main函数里面的吧。。
skyxfire 2010-11-19
  • 打赏
  • 举报
回复
按照实现的功能和对象分成不同的模块
FrankHB1989 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mymtom 的回复:]

有这么写程序的么,一个程序上万行?
[/Quote]
应该有。
GCC的一个expr.c就差不多了。
bcj00000 2010-11-19
  • 打赏
  • 举报
回复
把一些栈上开辟的东西去掉一些就能以了。如char arr[1024] ....这种东西
hns888 2010-11-18
  • 打赏
  • 举报
回复
跟编程习惯有关了,重新分清你的需求,方法与实现按一定逻辑分类。
echozzjsjtu 2010-11-18
  • 打赏
  • 举报
回复
嗯 这样不对
因为自己的编程都是自学的,所以写的代码都很不规范

自己是半路出家的啊 ^-^
mymtom 2010-11-18
  • 打赏
  • 举报
回复
有这么写程序的么,一个程序上万行?
echozzjsjtu 2010-11-18
  • 打赏
  • 举报
回复
我知道这个问题好像比较复杂,一句话两句话说不清楚

可还是希望大家给些知道,

或者推荐我一本书,可以学到相关的知识也可
echozzjsjtu 2010-11-18
  • 打赏
  • 举报
回复
接着求解 如何拆分一个较大的cpp文件。。。

谢谢
echozzjsjtu 2010-11-18
  • 打赏
  • 举报
回复
哦 是这个样子 我明白了
然后我把Zm1456改为了Zm1450,程序就没有错误了,
可我还是想把我的程序(实际上我的程序还是只有一个很大的main.cpp文件)拆分成小的文件,

求教
la_feng 2010-11-18
  • 打赏
  • 举报
回复
错误提示是堆溢出吧,应该是你申请的内存过大,请google“堆溢出”

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧