请教一个静态函数调用的LNK2019问题

xiarui 2011-11-02 10:09:15
代码如下:
A.h
class A
{
public:
static void fun();
}

A.cpp
void A::fun() {}

main.cpp
main()
{
A::fun()
}

编译可通过,但是出现LNK2019链接错

如果把fun()的定义放到A.h中就顺利通过了,这是为什么啊?
谢谢
...全文
312 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DIE654456 2011-11-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiarui 的回复:]
弱弱问一下,怎么查看文件视图,我是用vs2010
实在是新手,不好意思。。。
[/Quote]

呵呵,我以为你用的是VC6,通常在左边project视图里,VS2010我也不会。
柯本 2011-11-02
  • 打赏
  • 举报
回复
这样没问题的,可能的问题是
A.cpp
#include "a.h" //这个没有加入
void A::fun() {}
编译时,要将你的A.cpp加入你的主程序所在工程中
如是命令行(VC)
cl test.cppp a.cpp

DIE654456 2011-11-02
  • 打赏
  • 举报
回复
工程里要有A.h、A.cpp、main.cpp
查看文件视图,把没有的cpp加进来。
W170532934 2011-11-02
  • 打赏
  • 举报
回复
看看C++ Prime吧。好像是静态的要求是这样的吧
vilnies 2011-11-02
  • 打赏
  • 举报
回复
你的A.cpp没重新编译还是没include "A.h"
xiarui 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 die654456 的回复:]

工程里要有A.h、A.cpp、main.cpp
查看文件视图,把没有的cpp加进来。
[/Quote]

弱弱问一下,怎么查看文件视图,我是用vs2010
实在是新手,不好意思。。。
xiarui 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 w170532934 的回复:]

看看C++ Prime吧。好像是静态的要求是这样的吧
[/Quote]

我都试了下,如果静态函数是类的成员函数,是可以在h中声明、cpp中定义的
xiarui 2011-11-02
  • 打赏
  • 举报
回复
找到原因了,自己粗心大意在fun()的定义前面忘了写A::
惭愧啊~~

谢谢大家的帮助!呵呵

65,210

社区成员

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

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