我已经多次看到以下样式类定义。这种风格的优点/缺点到底是什么?

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类型,而无需使用特定于平台的类型。

10-01 22:48
查看更多