|
1
14
其中“detail/foo.hpp”类似于:
然后,您将在中实现此功能
|
|
|
2
15
要真正实现需要操作系统支持的跨平台功能(如套接字),您必须编写简单的代码 不会编译
但是,由于您无论如何都必须使用预处理器,因此是否使用
|
|
|
3
4
你不需要为了跨平台而去OOP。跨平台更多的是一种架构和设计范式。
特定于平台的功能应位于单独的库或文件中。构建过程应针对特定平台使用正确的库。您的“标准”代码不应更改。 |
|
4
2
理想情况下,您应该将差异集中在尽可能低的级别。
另外,看看“boost”,它包含了很多处理跨平台网络文件系统等的东西 |
|
|
5
1
例子:
|
|
|
6
1
在您的第一个示例或GMan中,授权非常有效,特别是当特定于平台的部分需要许多特定于平台的成员(例如,仅存在于一个平台中的类型的成员)时。缺点是您必须维护两个类。 如果类变得更简单,没有很多特定于平台的成员,那么您可以只使用一个公共类声明,并在两个不同的.cc文件中编写两个实现(对于独立于平台的方法实现,可能还有第三个.cc)。对于少数平台特定的成员或具有平台特定类型的成员,您可能需要在头文件中使用一些#ifdef。这种方式更像是一种黑客行为,但可以更容易地开始。如果它失去控制,您始终可以切换到代理。 |
|
7
1
|
|
|
8
1
您可以使用模板专门化来分离不同平台的代码。
|
|
|
simply lemon · python上链表的添加方法 2 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 2 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 2 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 2 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 2 年前 |