b.cpp
如下声明extern const int max;

解决方案 »

  1.   

    是我没把问题说清楚
    我是要定义两个类,
    每个类中都要定义一个array[max][max]数组。
    我试了一下,好像是在每个类的头文件里都要定义一个const int max=10;
    在每个类的cpp文件里面声明extern const int max;
    最后在main.cpp中包含上述定义的两个头文件,
    这样的话,产生多次定义的错误,
    好像要用编译预处理。
    小弟不会阿,请指教!急
      

  2.   

    自定义一个头文件
    #ifnedf OWNDEFINE_PUBLIC
    #define OWNDEFINE_PUBLIC
     
    const .........
    enum ...........
    struct ............
    #endif将此文件包含到stdafx.h中即可
      

  3.   

    建议不要把变量的定义放在头文件中定义,尤其是当头文件会多处包含时.
    在CPP中定义,在头文件中用extern 申明
      

  4.   

    楼上的兄弟,麻烦你说具体点好不,
    我是菜鸟,不懂阿!
    我试了一下,好像如果在每类里面
    定义一个数组如array[max][max]
    要在类的头文件中定义const int max=10;
    这样在类的cpp文件中声明extern const int max才可用。我想在主函数所在的文件里声明const int max=10;
    在两个类的头文件和.cpp文件中声明extern const int max;
    对不对?应该队的才是啊。
    编译器、连接器老出现的两个错误: 
    max重定义,或array[max][max]的下标表达式要常量的错误
    不知要怎么解决啊。
    望大虾就小弟于水火之中
      

  5.   

    (1)你可以在每个类里定义 const
    但不要在 cpp 中 extern 它
    因为const默认是 static, 并不是 extern
    (2)你不要用 max 着个名字, 它是已经是一个函数的名字
    (3)你可以把这个量定义在每个类的内部class A
    {
      const int max = 10;
      int data[max][max];
    }(4)你可以用#difine