0xAA55 发表于 2015-9-24 21:59:39

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

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包含。这么做可以做到最大优化。但是编译会变得超慢。

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

0x01810 发表于 2015-9-25 13:49:46

为什么 尽量不使用inline关键字?

0xAA55 发表于 2015-9-25 20:31:25

0x01810 发表于 2015-9-25 13:49
为什么 尽量不使用inline关键字?

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

绿色的肥兔 发表于 2015-11-20 17:26:30

第5 , 可以简单理解为 .h中声明并完成所需功能的实现,然后.cpp里只有一个main(),在main()里调用.h里的函数吗?

0xAA55 发表于 2015-11-20 19:45:53

绿色的肥兔 发表于 2015-11-20 17:26
第5 , 可以简单理解为 .h中声明并完成所需功能的实现,然后.cpp里只有一个main(),在main()里调用.h里的 ...

对。

7KY6 发表于 2018-1-14 15:04:03

可以可以!!
页: [1]
查看完整版本: 【讨论】C++的面向对象编程应该这么玩!