读书人

类中成员变量赋值有关问题

发布时间: 2012-09-18 16:21:42 作者: rapoo

类中成员变量赋值问题。
我写了一个头文件中定义了一个类:
class CCommonAction
{
public:
vector <int> nImage; //记录贴编号为nImage的图
vector <int> nDuration; //贴图间隔时间,单位:毫秒
vector <int> nState; //使用这个技能的时候,自身变化状态。一般为空
vector <int> nX; //X轴移动距离
vector <int> nY; //Y轴移动距离
};

//并在头文件中实例化,并赋值,如下:
CCommonAction CA_PriestStanding;
CA_PriestStanding.nImage.push_back(0);
CA_PriestStanding.nImage.push_back(1);
CA_PriestStanding.nImage.push_back(2);
CA_PriestStanding.nImage.push_back(3);
CA_PriestStanding.nImage.push_back(2);
CA_PriestStanding.nImage.push_back(1);
CA_PriestStanding.nDuration.push_back(200);
CA_PriestStanding.nDuration.push_back(200);
CA_PriestStanding.nDuration.push_back(200);
CA_PriestStanding.nDuration.push_back(200);
CA_PriestStanding.nDuration.push_back(200);

出现大致如下错误:
error C2143: syntax error : missing ';' before '.'
error C2501: 'CA_PriestStanding' : missing storage-class or type specifiers
error C2371: 'CA_PriestStanding' : redefinition; different basic types
see declaration of 'CA_PriestStanding'


[解决办法]

C/C++ code
void fun(){    //在实现文件中的某函数内实例化,并赋值,如下:    CCommonAction CA_PriestStanding;    CA_PriestStanding.nImage.push_back(0);    CA_PriestStanding.nImage.push_back(1);    CA_PriestStanding.nImage.push_back(2);    CA_PriestStanding.nImage.push_back(3);    CA_PriestStanding.nImage.push_back(2);    CA_PriestStanding.nImage.push_back(1);    CA_PriestStanding.nDuration.push_back(200);    CA_PriestStanding.nDuration.push_back(200);    CA_PriestStanding.nDuration.push_back(200);    CA_PriestStanding.nDuration.push_back(200);    CA_PriestStanding.nDuration.push_back(200);}
[解决办法]
//并在头文件中实例化,并赋值,如下:
别在头文件中实例化。
[解决办法]
#pragma once

#ifndef ...
#define ...
#endif

你变量的定义最好是放到cpp文件中去

读书人网 >VC/MFC

热点推荐