| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 995 人关注过本帖
标题:运行程序出现错误,大家帮忙看下是怎么回事!
取消只看楼主 加入收藏
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
 问题点数:0 回复次数:3 
运行程序出现错误,大家帮忙看下是怎么回事!
我以用VS2008运行一程序时遇到如下错误,请大家帮我看一下为什么?
我编译时没错误。而 start debugging时遇到这个错误,麻烦大家帮我看一下,还有必要把源程序发上来吗?
谢谢!!!
1>------ Build started: Project: josephus, Configuration: Debug Win32 ------
1>Linking...
1>josephus.obj : error LNK2019: unresolved external symbol "public: class CNode<int> * __thiscall CNode<int>::NextNode(void)const " (?NextNode@?$CNode@H@@QBEPAV1@XZ) referenced in function "void __cdecl Josephus(class CNode<int> *,int,int)" (?Josephus@@YAXPAV?$CNode@H@@HH@Z)
1>D:\My Documents\Visual Studio 2008\Projects\josephus\Debug\josephus.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://d:\My Documents\Visual Studio 2008\Projects\josephus\josephus\Debug\BuildLog.htm"
1>josephus - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
搜索更多相关主题的帖子: int CNode void 运行 
2008-03-20 15:16
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 
谢谢了!程序有两部分:
//下面是类定义:
#ifndef CNODE_H
#define CNODE_H
#include<iostream>
using namespace std;
template<typename T>
class CNode
{
private:
    CNode<T> *next;
public:
    T data;
    CNode(){};
    CNode(const T& item);
    void InsertAfter(CNode<T> *p);
    CNode<T>* DeleteAfter();
    CNode<T>* NextNode()const;
};
template<typename T>
CNode<T>::CNode(const T& item)
{
    next=this;
    data=item;
}
template<typename T>
void CNode<T>::InsertAfter(CNode<T> *p)
{
    p->next=next;
    next=p;
}
template<typename T>
CNode<T>* CNode<T>::DeleteAfter()
{
    CNode<T> *tempPtr=next;
    if(next==this)
        return 0;
    next=tempPtr->next;
    return tempPtr;
}
#endif

//下面是CPP文件:
#include"cnode.h"
void CreateList(CNode<int> *header,int n)
{
    CNode<int> *currPtr=header,*newNodePtr;
    int i;
    for(i=1;i<=n;i++)
    {
        newNodePtr=new CNode<int>(i);
        currPtr->InsertAfter(newNodePtr);
        currPtr=newNodePtr;
    }
}
void Josephus(CNode<int> *list,int n,int m)
{
    CNode<int> *prevPtr=list,*currPtr=list->NextNode();
    CNode<int> *deleteNodePtr;
    for(int i=0;i<n-1;i++)
    {
        for(int j=0;j<m-1;j++)
        {
            prevPtr=currPtr;
            currPtr=currPtr->NextNode();
            if(currPtr==list)
            {
                prevPtr=currPtr;
                currPtr=currPtr->NextNode();
            }
        }
        cout<<"Delete person"<<currPtr->data<<endl;
        deleteNodePtr=currPtr;
        currPtr=currPtr->NextNode();
        prevPtr->DeleteAfter();
        delete deleteNodePtr;
        if(currPtr==list)
        {
            prevPtr=currPtr;
            currPtr=currPtr->NextNode();
        }
    }
    cout<<endl<<"Person"<<currPtr->data<<"Win the cruise!"<<endl;
    deleteNodePtr=list->DeleteAfter();
    delete deleteNodePtr;
}
int main()
{
    CNode<int> list;
    int n,m=3;
    cout<<"Enter the number of contestants ";
    cin>>n;
    CreateList(&list,n);
    Josephus(&list,n,m);
    return 0;
}
谢谢大家了。

i like linux...
2008-03-20 16:20
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 
三楼说笑了。

[[it] 本帖最后由 zjl138 于 2008-3-20 19:35 编辑 [/it]]

i like linux...
2008-03-20 18:30
zjl138
Rank: 1
等 级:新手上路
威 望:1
帖 子:788
专家分:0
注 册:2007-11-12
收藏
得分:0 
问题已解决,谢谢大家!!!

i like linux...
2008-03-20 20:04
快速回复:运行程序出现错误,大家帮忙看下是怎么回事!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021216 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved