我在VS2005中编写了一个程序,自己制作了头文件和源文件,再在主函数的文件里包含头文件,但是调用不了自 10

我在VS2005中编写了一个程序,自己制作了头文件和源文件,再在主函数的源文件里包含头文件,但是调用不了自己的函数(这三个文件都是在同一文件夹下的),提示:errorLN... 我在VS2005中编写了一个程序,自己制作了头文件和源文件,再在主函数的源文件里包含头文件,但是调用不了自己的函数(这三个文件都是在同一文件夹下的),提示:error LNK2019: 无法解析的外部符号 "public: void __thiscall Stack<int>::Push(int)" (?Push@?$Stack@H@@QAEXH@Z),该符号在函数 _main 中被引用
我的包含关系:
a.h
a.cpp:
#include “a.h”
main.cpp:
#include “a.h”

以前写的也是这样包含也不会出问题,这是为什么呢?
展开
 我来答
匿名用户
2011-04-15
展开全部
08和VS2010。我将下面程序运行了一下:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
vector<int> ivec;

for (int i = 0; i < 10; ++i)
ivec.push_back(i);

if (std::is_sorted(ivec.begin(), ivec.end()))
cout << "Support!" << endl;
else
cout << "Not Support!" << endl;
}
发现:2010可以通过编译,2008则不行!
于是我又查了《C++标准程序》一书,发现上面也没有,初次判断is_sorted不是98标准的内容。
我又查看了最新的C++0x标准草稿N3225,果然发现了~由于我没有98标准,所以不能够断定is_sorted不是98的内容,但是我在google上的一些英文网站上得知与我预测的差不多~(虽然在一个网站上差到说SGI版本的STL有is_sorted函数,但是我在侯捷的《STL源码剖析》中仍未找到,进一步肯定了不是98标准的内容)!
所以,is_sorted是C++0x新标准里边的内容,虽然标准还没有面世,但是Visual Studio 2010已经实现了部分新标准的内容!
还有你可以在VS2005下使用另一种替换方式(如果你很像用STL来实现这一功能):
adjacent_find(begin(), end(), greater_than<T>()) == end()
来代替
is_sorted(begin(), end())
另外,团IDC网上有许多产品团购,便宜有口碑
chzhn
2011-04-11 · TA获得超过5343个赞
知道大有可为答主
回答量:2951
采纳率:0%
帮助的人:1471万
展开全部
a.cpp没有包含到项目中或没有被编译器编译。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fcd769a29
2011-04-11 · TA获得超过140个赞
知道小有建树答主
回答量:632
采纳率:0%
帮助的人:411万
展开全部
a.cpp 要添加到工程中
追问
但是我是在同一个项目中的啊。。还有,包含cpp就可以执行啊。。
追答
应该是函数声明和定义不一致
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wufei420892457
2011-04-11
知道答主
回答量:10
采纳率:0%
帮助的人:11.4万
展开全部
检查文件 a.cpp 是否添加到工程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式