1
allAboutDbmss 2020-07-21 20:39:02 +08:00
2000 行很长吗...我很弱弱问一句
|
2
SingeeKing 2020-07-21 21:46:03 +08:00 1
2000 行真不长…… 很多开源项目都是这样
|
3
LifStge 2020-07-21 22:09:08 +08:00
确实这个不算长
你这样想 你把超长头文件 分成很多不同的小文件 那么 你用的时候怎么办呢 详细记住哪个东西在哪个文件里面啊 自己分的 那还好 再比如 这些是别人 很多人 分的的 你确定你知道哪个在哪个里面么 写个代码不头疼死么 写次代码 翻次文档 没有文档 挨个翻源码啊.. |
4
LifStge 2020-07-21 22:11:28 +08:00
现在 代码的多少 都加进屎山的定义了么
|
5
CismonX 2020-07-21 22:27:56 +08:00 via iPhone 1
用预编译头,可以在头文件不变的时候加快源文件的编译速度
我之前用很多模版库,比如 boost,再比如 armadillo 等等,都是这么搞的 另外 2000 行真的不长。公司里有个项目,头文件加起来有十几万行🤣 |
6
xcstream 2020-07-22 00:19:27 +08:00
include 套娃
|
7
MrKou47 2020-07-22 00:41:04 +08:00 via iPhone
我感觉头文件挺好的。。总比分散在项目中好啊
|
8
msg7086 2020-07-22 02:01:14 +08:00 via Android
那你拆成一堆头文件屎饼啊…
|
10
chinuno 2020-07-22 08:42:18 +08:00 via Android
如果不是作为库使用的话可以提供一个思路。
模板的实现写在 cpp 里面,然后 cpp 里面显式实例化。需要哪个类的实现就在 cpp 加一句重新编译 cpp 就可以 |
11
AlohaV2 OP @chinuno 类似`using SpecifiedSomeClass = TemplatedClass<Foo>;` 这样的吗
|
12
meteor957 2020-07-22 09:56:40 +08:00
2000 行一般吧 不算很长了
|
13
newmlp 2020-07-22 10:10:48 +08:00
2000 行不长,真不长
|
14
GuangXiN 2020-07-22 12:44:17 +08:00 via Android
.cpp 有两千行很长吗?我司一个.php 有 1980 行。
|
15
yolee599 2020-07-22 12:48:08 +08:00
head1.h
head2.h head3.h |
16
byzf 2020-07-22 17:08:13 +08:00 3
所谓屎山叠加, 是把两千行复制一下, 然后在后面的两千行里改改, 变成四千行的文件, 这样换个人来维护代码, 就要在几十个长得几乎完全一样函数里找不同, 绝对维护不了.
|
18
hahaayaoyaoyao 2020-07-22 20:17:55 +08:00 via Android
@byzf 写个脚本查一下
|
20
chinuno 2020-07-23 08:49:00 +08:00 via Android
@AlohaV2 https://docs.oracle.com/cd/E19205-01/821-0389/bkafk/index.html
网上搜搜用法都有了。 模板一般用法放头文件是使用的时候隐式实例化生成对应类的函数实现。 显式实例化放 cpp 里面就提前指定了要实现函数内容,编译这个 cpp 的时候目标文件就包含了函数实现。这样就不需要引入头文件推迟到真正使用的时候才生成函数实现 |
21
AlohaV2 OP @chinuno 我用到的场景应该是需要隐式实例化的,或者说是我提供了一个模板类,然后不同的编译目标都可能根据自己的需求去实例化它。这种情况下放在 cpp 应该是无法编译的吧,所以就有了我提出的问题。
|
22
Wirbelwind 2020-07-23 10:58:17 +08:00
我司 c++代码各种虚类,一个文件一个虚类,跳来跳去很麻烦。
有些类型写得和 java 一样,还使用 DAO 命名的,然后 主设计开发者 去阿里当 p6 还是 p7 了 |