向c++高手请教一个综合了类、函数指针、静态成员变量以及结构体的问题!!急!!谢谢先!!

linshideyu 2006-07-28 03:31:06
具体问题描述如下:

程序中有两个文件,分别是头文件aa.hpp,源文件aa.cpp。

在aa.hpp中有如下定义:

/** aa.hpp **/
typedef int (Ca::*Pf)(); //typedef一个指向类成员函数的函数指针;

typedef struct
{
Pf Indications;
char *ActionName;
}TInd; //声明一个结构体,第一项是指向类成员函数的函数指针,第二项用来保存该函数的名字;

class Ca
{
public:
。。。

static TInd astInd[20];//类的静态成员,结构体数组。

。。。
};


在aa.cpp中对该结构体数组进行初始化:

/** aa.cpp **/
TInd Ca::astInd[20] =
{
{&Ca::Login,"Login"},
{&Ca::Register,"Register"},
{&Ca::Create,"Create"},

{&Ca::Logout,"Logout"}
};


请问上面这段伪代码有什么原理上的错误吗?我在vc上能够编译通过,但是在链接的时候
说是“ error LNK2001: unresolved external symbol "struct TInd * astInd" (?astInd@@3PAUTInd@@A)”
...全文
162 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jixingzhong 2006-07-28
  • 打赏
  • 举报
回复
就这看到的一部分,
没啥问题 ...
cunsh 2006-07-28
  • 打赏
  • 举报
回复

没问题...
lyskyly 2006-07-28
  • 打赏
  • 举报
回复
这样能编译通过,也没有连接错误,不知道楼主的全部代码是什么
/** aa.hpp **/
class Ca;
typedef int (Ca::*Pf)(); //typedef一个指向类成员函数的函数指针;

typedef struct
{
Pf Indications;
char *ActionName;
}TInd; //声明一个结构体,第一项是指向类成员函数的函数指针,第二项用来保存该函数的名字;

class Ca
{
public:

static TInd astInd[20];//类的静态成员,结构体数组。
int Login(){return 0;};
int Register(){return 0;};
int Create(){return 0;};
int Logout(){return 0;};
};


/** aa.cpp **/
TInd Ca::astInd[20] =
{
{&Ca::Login,"Login"},
{&Ca::Register,"Register"},
{&Ca::Create,"Create"},

{&Ca::Logout,"Logout"}
};

int main()
{
Ca ca;
}

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧