编写有点低级的 C++ 内容,您经常必须编写特定于操作系统的内容。让我们以一个MessageBox()
函数为例(不是一个出色的例子,因为框架会这样做,但很容易理解)。
假设您有一个基App
类,每个项目都提供一个自定义子类,例如MyApp
. 对于每个操作系统,您可以有一个App::MessageBox()
包含多个块的方法。#ifdef
或者,您可以有一个基类/接口,每个操作系统的子类提供实现。例如AppWin32 : public App
一方面,后者对我来说似乎更整洁,但另一方面,这意味着您MyApp
必须使用一些丑陋的代码来确保它是正确的操作系统特定基类的子类。
更好的方法是什么?