在一个类开始之前,我加入了几个变量,这些变量都成为了全局变量,运行良好。但是我再加入一个函数,如下:
void EmptyQueue(float *q)
{
q->front=0;
q->rear=0;
q->curr=0;
q->hWnd = NULL;
delete q;
}
发现运行时出现错误,说什么这个函数在TEST.obj中已经有定义。后来改成:
inline void EmptyQueue(float *q)
{
q->front=0;
q->rear=0;
q->curr=0;
q->hWnd = NULL;
delete q;
}
运行就没有问题了,请问为什么,有别的办法加全局函数吗,我现在这样用inline是不是性能上很不好呢?

解决方案 »

  1.   

    不好意思,写错了。SeQueue是队列
    在一个类开始之前,我加入了几个变量,这些变量都成为了全局变量,运行良好。  
     
    但是我再加入一个函数,如下:  
    void  EmptyQueue( SeQueue *q)  
    {  
               q->front=0;  
               q->rear=0;  
               q->curr=0;  
               q->hWnd  =  NULL;  
               delete  q;  
    }  
    发现运行时出现错误,说什么这个函数在TEST.obj中已经有定义。  
     
    后来改成:  
    inline  void  EmptyQueue(SeQueue  *q)  
    {  
               q->front=0;  
               q->rear=0;  
               q->curr=0;  
               q->hWnd  =  NULL;  
               delete  q;  
    }  
    运行就没有问题了,请问为什么,有别的办法加全局函数吗,我现在这样用inline是不是性能上很不好呢?
      

  2.   

    你这个函数是不是在.h文件里实现的?
    在.h里写声明,在.cpp里实现。