CTest的构造函数是CTest(BOOL bInit),但在CFrame1的头文件中定义一个全局变量CTest test(TRUE),编译出错。应该怎样定义CTest的全局变量?

解决方案 »

  1.   

    在定义前#include "Test.h" // 包含CTest的文件CTest的构造函数应该是public声明。
      

  2.   

    已经#include "Test.h",并且构造函数是public。
    我不是很想用指针啊,因为要delete,麻烦了一点。
      

  3.   


    你应该把它定义到cpp中,然后在.h中什么就可以了。
    例如:
    // Frame1.hextern CTest test;//Frame1.cpp
    CTest test(TRUE);
      

  4.   

    在头文件中定义全局变量?很少这样干的吧,要定义也得在.cpp中定义啊
      

  5.   

    在头文件中声明全局变量,在源文件中定义全局变量;
    头文件中:
    extern CTest g_test;在源文件中:
    extern CTest g_test(TRUE);
      

  6.   

    应该是成员变量,而不是全局变量,更正一下。成员变量如果是CTest test(TRUE)编译就报错,why?
      

  7.   


    申明时不能赋值,在构造函数里赋值。例如:CTest
    {
    public:
        CTest(){}
    };
    class A
    {
    public:
        A() : test(TRUE) {}
    private:
        CTest test;
    };
      

  8.   

    CTest
    {
    public:
        CTest(BOOL){}
    };
    class A
    {
    public:
        A() : test(TRUE) {}
    private:
        CTest test;
    };