永发信息网

请教VC6.0中头文件与源文件分离的问题

答案:1  悬赏:70  手机版
解决时间 2021-04-16 08:54

//point类头文件:point.h

#ifndef _POINT_H_
#define _POINT_H_

#include <iostream>
class point
{
public:
point(int x=0,int y=0) : x(x),y(y) {}

void GetPoint();
private:
int x;
int y;
};
#endif

//point类的实现文件:point.cpp

#include "point.h"

inline void point::GetPoint()
{
std::cout << "(" << x << "," << y << ")" << std::endl;
}

//使用point的类:testPoint.cpp

#include "point.h"

int main()
{
point p(2,5);
p.GetPoint();


return 0;
}

单独编译 testPoint.cpp时,出现以下错误:

--------------------Configuration: pointTest - Win32 Debug--------------------
Compiling...
pointTest.cpp
Linking...
pointTest.obj : error LNK2001: unresolved external symbol "public: void __thiscall point::GetPoint(void)" (?GetPoint@point@@QAEXXZ)
Debug/pointTest.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

pointTest.exe - 2 error(s), 0 warning(s)

建立一个控制台应用程序工程的时候,把point类和他的实现文件加入工程后编译,也是出现上面的错误,请教高手,这是为什么?

最佳答案
inline函数必须和类声明放在同一个头文件里:

http://www.parashift.com/c++-faq-lite/inline-functions.html#faq-9.6
或者你可以将

inline void point::GetPoint()
{
std::cout << "(" << x << "," << y << ")" << std::endl;
}

前面的inline去掉,因为内联函数应该和类声明放在一起
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在一个论坛我有三个账号怎么才能同时登陆
平安旅馆在什么地方啊,我要过去处理事情
一般大家都喜欢什么游戏
我的脚很臭,洗好也有点臭,有什么办法可以除
什么是消费者市场,什么是消费者市场?什么是
QQ炫舞系统赠送的所有微张(列表
我是农历1986年3月21**是1985年7月13日,我们
恒诚祥饭馆在什么地方啊,我要过去处理事情
牛鞭怎么样清洗干净,新鲜牛鞭如何清洗图片
iPhone8要来了,旧苹果手机怎么处理好
谁推荐个单机角色扮演的游戏啊
妈祖阁海鲜酒楼在什么地方啊,我要过去处理事
<昆仑>是谁写的?
邮政的信用卡怎么样开通网上银行
请问《问道》游戏中.网通区.龙盘泰山..那个帮
推荐资讯
鞍山属于哪个省份,全国所有省份和所有城市
文科和理科杂选??
中颐金顶地址在哪,我要去那里办事
急求成都市建筑高大模板专家论证信息
衣服沾上白色涂料怎么办
夜里看鬼片睡不着怎么办?
大凭山隧道我想知道这个在什么地方
如何取得爱人的信任
完美国际,最强的野外BOSS?
怎么解除电脑锁屏密码,怎么取消电脑自动锁定
DNF11月10日(周二)服务器停机更新后转区就可
dnf登陆没密保卡选择
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?