我已经多次看到以下样式类定义。这种风格的优点/缺点到底是什么?
typedef class _MyClass
{
public :
_MyClass();
} MyClass;
最佳答案
它在C++中很少见,但在C语言中很常见(其中struct Foo
不会自动别名为Foo
。)您可能会在具有针对不同平台的不同类的库中看到它(例如,“Canvas”类,这是非常特定于实现的) 。)该库将使用typedef
使其用户简化其代码:
#if WINDOWS
typedef class WindowsCanvas {
private: HWND handle;
} Canvas;
#elif MAC
typedef class MacCanvas {
private: CGContextRef context;
} Canvas;
#endif
在这样的示例中,只需要使用
Canvas
类型,而无需使用特定于平台的类型。