首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-09-18 
类中成员变量赋值问题。我写了一个头文件中定义了一个类:class CCommonAction{public:vector int nImage

类中成员变量赋值问题。
我写了一个头文件中定义了一个类:
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文件中去

热点排行