我有三个cpp文件分别定义一三个类,如下:
A.cpp 文件class a
{
public:    
     int a;
}
/************************
B.cpp 文件class b
{
public:    
     int b;
}
/***********************
B.cpp 文件class b
{
public:    
     a ca;
     b cb;
}然后我想在 B.cpp 文件中某一成员函数中引用对象cb的成员变量bvoid f(void)
{
   extern b cb;   int d;
   d = cb.b;
}可是编译器总是提示:"法解释的符号 class b cb" 错误,应该怎么解决这个问题呢

解决方案 »

  1.   

    上面写错了,应该是
    A.cpp 文件 class a 

    public:     
         int a; 

    /************************ 
    B.cpp 文件 class b 

    public:     
         int b; 

    /*********************** 
    C.cpp 文件 class c 

    public:     
         a ca; 
         b cb; 

      

  2.   

    太令人费解了。类大括号后面也不加;
    你想在c.cpp某一成员函数中用cb?
    你直接用不就行了
      

  3.   

    因为在c.cpp里没有找到a和b的声明,在class c之前
    要声明
    class b;
    class a;----------------------
    类的定义一般放在头文件里,实现放在cpp里,在引用该类的文件包含该类的头文件
      

  4.   

    文件的结构关系你都不清楚...写出来的代码一团乱麻..!hehe不要生气
    慢慢来..
      

  5.   

    不要用extern b cb; 
    而是用b cb;,extern的意思是你在另一个地方定义了一个变量,这个地方引用那个变量,你这儿显然用不着。
      

  6.   

    我晕,搞晕了,应该是 能直接用的话我也用不着在这发贴了
    A.cpp 文件 class a 

    public:     
         int a; 
    } ;
    /************************ 
    B.cpp 文件 class b 

    public:     
         int b; 
    } ;
    /*********************** 
    B.cpp 文件 class b 

    public:     
         a ca; 
         b cb; 
    };然后我想在 A.cpp 文件中某一成员函数中引用对象cb的成员变量b void f(void) 

       extern b cb;    int d; 
       d = cb.b; 

      

  7.   

    是在A.CPP 文件中引用在C.app文件中的对象cb
    不是在B.cpp
      

  8.   

    你既然有一句extern b cb;  肯定在别的地方就要有一句b cb;  ,否则就会报你说的错误,明白?