技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 1494|回复: 5
收起左侧

【讨论】C++的面向对象编程应该这么玩!

[复制链接]

1059

主题

2433

帖子

6万

积分

用户组: 管理员

一只技术宅

UID
1
精华
221
威望
348 点
宅币
19479 个
贡献
40233 次
宅之契约
0 份
在线时间
1837 小时
注册时间
2014-1-26
发表于 2015-9-24 21:59:39 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
1、给每个类一个.cpp和.h文件,.h声明类,.cpp实现类成员函数。实现写在.cpp里。
2、尽量不使用inline关键字。
3、先定义好类,然后对已经完成定义的类使用预编译头。
4、进行Debug编译的时候,所有类成员实现被编译到cpp文件里,即使这个实现代码只有一行。
5、进行Release编译的时候,所有类成员实现被编译到预编译头——在.h中直接包含.cpp!入口点main.cpp除外,其它cpp使其成为空白即可。

    首先几乎每个程序都得有个入口点,入口点通常在entry.cpp或main.cpp中。在Release的情况下,每个类的.h都包含自身的.cpp,而自身的.cpp则并不参与编译,或者使用宏来使其内容为空白。所有的类成员定义都被放到了每个类的.h中,并被entry.cpp或main.cpp包含。这么做可以做到最大优化。但是编译会变得超慢。

以上做法仅适用于所有的类都只有一个程序拿来用的情况,或者没有任何想要把类写成动态库的动机!
回复

使用道具 举报

0

主题

76

帖子

6735

积分

用户组: 真·技术宅

UID
604
精华
0
威望
1 点
宅币
804 个
贡献
5853 次
宅之契约
0 份
在线时间
97 小时
注册时间
2014-12-20
发表于 2015-9-25 13:49:46 | 显示全部楼层
为什么 尽量不使用inline关键字?

1059

主题

2433

帖子

6万

积分

用户组: 管理员

一只技术宅

UID
1
精华
221
威望
348 点
宅币
19479 个
贡献
40233 次
宅之契约
0 份
在线时间
1837 小时
注册时间
2014-1-26
 楼主| 发表于 2015-9-25 20:31:25 | 显示全部楼层
0x01810 发表于 2015-9-25 13:49
为什么 尽量不使用inline关键字?

Debug的时候出于调试的需要,不建议内联函数。Release的时候,调整好优化参数,编译器自己会帮助你选择应该内联的函数,即使你没有使用inline关键字。

0

主题

17

帖子

71

积分

用户组: 小·技术宅

UID
1186
精华
0
威望
1 点
宅币
52 个
贡献
0 次
宅之契约
0 份
在线时间
9 小时
注册时间
2015-10-10
发表于 2015-11-20 17:26:30 | 显示全部楼层
第5 , 可以简单理解为 .h中声明并完成所需功能的实现,然后.cpp里只有一个main()  ,在main()里调用.h里的函数吗?

1059

主题

2433

帖子

6万

积分

用户组: 管理员

一只技术宅

UID
1
精华
221
威望
348 点
宅币
19479 个
贡献
40233 次
宅之契约
0 份
在线时间
1837 小时
注册时间
2014-1-26
 楼主| 发表于 2015-11-20 19:45:53 | 显示全部楼层
绿色的肥兔 发表于 2015-11-20 17:26
第5 , 可以简单理解为 .h中声明并完成所需功能的实现,然后.cpp里只有一个main()  ,在main()里调用.h里的 ...

对。

0

主题

41

帖子

45

积分

用户组: 初·技术宅

UID
3351
精华
0
威望
2 点
宅币
0 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2018-1-14
发表于 2018-1-14 15:04:03 | 显示全部楼层
可以可以!!
回复

使用道具 举报

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图  

GMT+8, 2020-7-5 20:42 , Processed in 0.100213 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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