关于在MFC中声明和定义一个函数的问题
我在DECLARE_MESSAGE_MAP()就是灰色部分声明了一个函数如下afx_msgstructNode*CreateList(LinkListL);然后定义它st...
我在DECLARE_MESSAGE_MAP()就是灰色部分声明了一个函数如下afx_msg struct Node* CreateList(LinkList L);然后定义它struct CListexampleDlg::Node* CreateList(CListexampleDlg::Node* L){...}
我的结构体是这样的
typedef struct Node
{
int px;
int py;
struct Node *next;
}Node;
typedef struct Node *LinkList;
这样程序报错,不知道什么原因。
具体解释上面代码:
如果我在 DECLARE_MESSAGE_MAP()这样声明函数afx_msg void* CreateList(LinkList L);
在程序中这样定义void* CListexampleDlg::CreateList(CListexampleDlg::Node* L){...}这是没错的
可是我想的是定义CreateList这个函数 它的返回值是指向结构体的指针 不知道在MFC中怎么声明和定义。
求大神解答!!! 展开
我的结构体是这样的
typedef struct Node
{
int px;
int py;
struct Node *next;
}Node;
typedef struct Node *LinkList;
这样程序报错,不知道什么原因。
具体解释上面代码:
如果我在 DECLARE_MESSAGE_MAP()这样声明函数afx_msg void* CreateList(LinkList L);
在程序中这样定义void* CListexampleDlg::CreateList(CListexampleDlg::Node* L){...}这是没错的
可是我想的是定义CreateList这个函数 它的返回值是指向结构体的指针 不知道在MFC中怎么声明和定义。
求大神解答!!! 展开
2个回答
展开全部
(1)出错估计是你定义函数实体的位置是在类定义外部进行的,书写格式错误:
struct CListexampleDlg::Node* CreateList(CListexampleDlg::Node* L){...} 是错误的
应该为:
struct CListexampleDlg::Node* CListexampleDlg::CreateList(CListexampleDlg::Node* L){...}
(2)你既然定义了新的类型LinkList;,可以在所有struct Node*的地方用LinkList,否则程序的可读性差,如:
afx_msg Linklist CreateList(LinkList L);
.....
Linklist CListexampleDlg::CreateList((LinkList L){...}
struct CListexampleDlg::Node* CreateList(CListexampleDlg::Node* L){...} 是错误的
应该为:
struct CListexampleDlg::Node* CListexampleDlg::CreateList(CListexampleDlg::Node* L){...}
(2)你既然定义了新的类型LinkList;,可以在所有struct Node*的地方用LinkList,否则程序的可读性差,如:
afx_msg Linklist CreateList(LinkList L);
.....
Linklist CListexampleDlg::CreateList((LinkList L){...}
2013-10-21
展开全部
把头文件整个发上来看才能理解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询