struct GdiplusStartupInput
{
    UINT32 GdiplusVersion;             
    DebugEventProc DebugEventCallback;
    BOOL SuppressBackgroundThread;
    BOOL SuppressExternalCodecs; 
    
    GdiplusStartupInput(
        DebugEventProc debugEventCallback = NULL,
        BOOL suppressBackgroundThread = FALSE,
        BOOL suppressExternalCodecs = FALSE)
    {
        GdiplusVersion = 1;
        DebugEventCallback = debugEventCallback;
        SuppressBackgroundThread = suppressBackgroundThread;
        SuppressExternalCodecs = suppressExternalCodecs;
    }
};typedef VOID (WINAPI *DebugEventProc)(DebugEventLevel level, CHAR *message);为什么结构体中有个函数?

解决方案 »

  1.   

    在C++里面struct和class的区别:
    1.struct默认的访问级别是public,class是private
    2.struct在结构体里面没有函数的话可以保持对C语言的兼容~
      

  2.   

    估计这跟编译器相关吧。在支持c++的编译器中,他们默认了结构体可以包含函数。至于访问权限的区别,楼上已经说清楚了。struct应该没有默认的析构函数,它跟类体还是有差别的。
    结构体里面含有函数(几乎都是构造函数)多半是为了实现特殊的功能。一般建议不要这么使用,毕竟违背了类的初衷。