在类中添加成员函数出现错误(编译器是2003的)举个列子比如已经在项目中添加了类 Animals,我导头文件是先把类Animals的头文件导到#include "stdafx.h"头文件里然后分别在类Animals的头文件导入#include "stdafx.h"和类Animals的CPP文件中导入#include "stdafx.h"的。
在类Animals里有2个函数分别是Run和Eat,这时候当调用这2个函数的时候没有发生错误,而继续在类Animals里添加新的函数Drink的话,当编译或调试的时候就会出现 Drink不是Animals的成员函数的错误.还请高手来赐教下。

解决方案 »

  1.   

    包含#include "stdafx.h"直接在CPP中包含即可,无需在Animals.h中再包含。如:
    Class Animals
    {
    public:
       int Run() ; 
       int Eat() ; 
       void Drink() ; 
    public:
       Animals() ; 
       ~Animals() ; } ; 
    在CPP中
    #include "stdafx.h"
    #include "Animals.h"
    Animals::Animals() 
    {
    }
    Animals()::~Animals()
    {
    } int Animals()::Run()
    {
      return 1 ;   
    }
    int Animals()::Eat()
    {
    return 0 ; 
    }void Animals()::Drink()
    {
    ...
    }
      

  2.   

    这些方法我都试过了,还是会报错说 Drink不是Animals的成员函数 而且我把所有有调用Animals中的函数的类里的Animals的头文件#include "Animals.h"都删除掉也不会报错。 
      还有就是在Animals类里面在添加函数Drink的时候就说Drink不是Animals的成员函数的 错误。 
    还有就是在修改Run或Eat两个函数的参数时就跟Drink函数一样说Run不是Animals的成员函数或Eat不是Animals的成员函数
      

  3.   

    可能还是包含的文件问题。比如你可能有两个Animals.h。
    只需要在cpp中包含就行了。
      

  4.   

    可能还是包含的文件问题。比如你可能有两个Animals.h。
    只需要在cpp中包含就行了。
      

  5.   

    1可能是Animals文件的问题。比如你实际有两个Animals文件。你检查看看。
    2只需在CPP中包含Animals即可。
      

  6.   

    这种情况我也预到过,如果你是用的VC++6的话,我告诉你,这种情况很正常(我也是用的VC6,因为VS2005里有很多缺点)。如果要解决这个问题,可以把这两个文件移去,通过类向导来创建类,这样就不会出错了(VC要自动生成一些宏);还有一种方法就是把实现代码写在类体里面.
      

  7.   

    本帖最后由 Mackz 于 2009-02-21 22:46:08 编辑