回 帖 发 新 帖 刷新版面

主题:[讨论]请大家帮我看看这个程序的错误

这个程序究竟是哪里的问题     为什么会有如下错误中的几个主要错误呢   尤其是这个错误  缺少函数标题(是否是老式的形式表?)   
   请各位给我指点一下啊    谢谢了    只要有见地诚心要求各位发表高见    谢谢啦

#pragma once
#include<cstdlib>
#ifndef MAIN_SAVITCH_5
#define MAIN_SAVITCH_5

namespace main_savitch_5
{
    template<class Item>
   class node
   {
      public:
          typedef Item value_type;
          node(node* init_link=NULL,value_type init_data=0)
          {
                          data_field=init_data;
                          link_field=link_field;
          }
                
       node(const value_type& init_data=value_type(),node* init_link=NULL);
        ~node(void);
        node* link()
        {
            return link_field;
        }
        void set_data(const value_type& new_data)
        {
            data_filed=new_data;
        }
        void set_link(const node* new_link)
        {
            link_filed=new_link;
        }
        value_type data() const
        {
            return data_field;
        }
        const node* link() const
        {
            return link_field;
        }
   private:
       value_type data_field;
       node* link_field;
    };
template<class Item>
   size_t list_length(const node<Item>* head_ptr);
   
template<class Item>
   void list_head_insert(node<Item>*& head_ptr,const Item& entry);
   
template<class Item>
   void list_insert(node<Item>* previous_ptr,const Item& entry);
   
template<class Item>
   node<Item>* list_search(node<Item>* head_ptr,const Item& target);
   
template<class Item>
   const node<Item>* list_search(const node<Item>* head_ptr,const Item& target);
   
template<class Item>
   node<Item>* list_locate(node<Item>* head_ptr,std::size_t position);
   
template<class Item>
   const node<Item>* list_locate(const node<Item>* head_ptr,const std::size_t position);
   
template<class Item>
   void list_head_remove(node<Item>*& head_ptr);
   
template<class Item>
   void list_remove(node<Item>* previous_ptr);
   
template<class Item>
   void list_clear(node*& head_ptr);
   
template<class Item>
   void list_copy(const node* source_ptr,node*& head_ptr,node*& tail_ptr);
}
#include"node.cpp"
#endif


#include "node.h"
#include<iostream>
#include<cstdlib>
using namespace std;
namespace main_savitch_5
{
    
     template<class Item>
    size_t list_length(const node<Item>* head_ptr)
    {
        const node<Item>* cursor;
        size_t answer;
        answer=0;
        for(cursor=head_ptr;cursor!=NULL;cursor=cursor->link())
    ++answer;
        return answer;
  }
  
template<class Item>
void list_head_insert(node<Item>*& head_ptr,const Item& entry)
{
    head_ptr=new node<Item>(head_ptr,entry);
}

template<class Item>
void list_insert(node<Item>* previous_ptr,const Item& entry)
{
    node<Item>* insert_ptr;
    insert_ptr=new node<Item>;
    insert_ptr->set_data(entry);
    insert_ptr->set_link(previous_ptr->link());
    previous_ptr->set_link(insert_ptr);
}

template<class Item>
node* list_search(node<Item>* head_ptr,const Item& target)
{
    node* cursor;
    for(cursor=head_ptr;cursor!=NULL;cursor=cursor->link())
        if(target==cursor->data())
            return cursor;
    return NULL;
}

template<class Item>
const node<Item>* list_search(const node<Item>* head_ptr,const Item& target)
{
    const node<Item>* cursor;
    for(cursor=head_ptr;cursor!=NULL;cursor=cursor->link())
        if(target==cursor->data())
            return cursor;
    return NULL;
}

template<class Item>
node<Item>* list_search(node<Item>* head_ptr,const Item& target);
{
      //
}

template<class Item>
const node<Item>* list_search(const node<Item>* head_ptr,const Item& target);
{
      //
}

template<class Item>
void list_copy(const node* source_ptr,node*& head_ptr,node*& tail_ptr)
{
   head_ptr=NULL;
   tail_ptr=NULL;
   if(source-ptr==NULL)
       return;
   list_head_insert(head_ptr,source_ptr->data());
   tail_ptr=head_ptr;
   source_ptr=source_ptr->link();
   while(source!=NULL)
   {
       list_insert(tail_ptr,source_ptr->data());
       tail_ptr=tail_ptr->link();
       source=source->link();
   }
}

template<class Item>
void list_head_remove(node<Item>*& head_ptr)
{
    node<Item> *remove_ptr;
    remove_ptr=head_ptr;
    head_ptr=head_ptr->link();
    delete remove_ptr;
}
template<class Item>
void list_remove(node<Item>* previous_ptr)
{
    node<Item> *remove_ptr;
    remove_ptr=previous_ptr_link();
    previous_ptr->set_link(remove_ptr->link());
    delete remove_ptr;
}
template<class Item>
void list_clear(node*& head_ptr)
{
    while(head_ptr!=NULL)
        list_head_remove(head_ptr);
}
}



>------ 已启动生成: 项目: 节点, 配置: Debug Win32 ------
1>正在编译...
1>node.cpp
1>e:\vs2008\c++\节点\节点\node.h(73) : error C2955: “main_savitch_5::node”: 使用类 模板 需要 模板 参数列表
1>        e:\vs2008\c++\节点\节点\node.h(10) : 参见“main_savitch_5::node”的声明
1>e:\vs2008\c++\节点\节点\node.cpp(57) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\vs2008\c++\节点\节点\node.cpp(63) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\vs2008\c++\节点\节点\node.cpp(17) : error C2995: “size_t main_savitch_5::list_length(const main_savitch_5::node<Item> *)”: 函数模板已经定义
1>        e:\vs2008\c++\节点\节点\node.h(46) : 参见“main_savitch_5::list_length”的声明
1>e:\vs2008\c++\节点\节点\node.cpp(23) : error C2995: “void main_savitch_5::list_head_insert(main_savitch_5::node<Item> *&,const Item &)”: 函数模板已经定义
1>        e:\vs2008\c++\节点\节点\node.h(49) : 参见“main_savitch_5::list_head_insert”的声明
1>e:\vs2008\c++\节点\节点\node.cpp(33) : error C2995: “void main_savitch_5::list_insert(main_savitch_5::node<Item> *,const Item &)”: 函数模板已经定义
1>        e:\vs2008\c++\节点\节点\node.h(52) : 参见“main_savitch_5::list_insert”的声明
1>e:\vs2008\c++\节点\节点\node.cpp(43) : error C2995: “main_savitch_5::node *main_savitch_5::list_search(main_savitch_5::node<Item> *,const Item &)”: 函数模板已经定义
1>        e:\vs2008\c++\节点\节点\node.cpp(36) : 参见“main_savitch_5::list_search”的声明
1>e:\vs2008\c++\节点\节点\node.cpp(53) : error C2995: “const main_savitch_5::node<Item> *main_savitch_5::list_search(const main_savitch_5::node<Item> *,const Item &)”: 函数模板已经定义
1>        e:\vs2008\c++\节点\节点\node.h(58) : 参见“main_savitch_5::list_search”的声明
1>e:\vs2008\c++\节点\节点\node.cpp(57) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\vs2008\c++\节点\节点\node.cpp(63) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\vs2008\c++\节点\节点\node.cpp(83) : error C2995: “void main_savitch_5::list_copy(const main_savitch_5::node *,main_savitch_5::node *&,main_savitch_5::node *&)”: 函数模板已经定义
1>        e:\vs2008\c++\节点\节点\node.h(76) : 参见“main_savitch_5::list_copy”的声明
1>e:\vs2008\c++\节点\节点\node.cpp(92) : error C2995: “void main_savitch_5::list_head_remove(main_savitch_5::node<Item> *&)”: 函数模板已经定义
1>        e:\vs2008\c++\节点\节点\node.h(67) : 参见“main_savitch_5::list_head_remove”的声明
1>e:\vs2008\c++\节点\节点\node.cpp(100) : error C2995: “void main_savitch_5::list_remove(main_savitch_5::node<Item> *)”: 函数模板已经定义
1>        e:\vs2008\c++\节点\节点\node.h(70) : 参见“main_savitch_5::list_remove”的声明
1>e:\vs2008\c++\节点\节点\node.cpp(106) : error C2995: “void main_savitch_5::list_clear(main_savitch_5::node *&)”: 函数模板已经定义
1>        e:\vs2008\c++\节点\节点\node.h(73) : 参见“main_savitch_5::list_clear”的声明
1>生成日志保存在“file://e:\vs2008\C++\节点\节点\Debug\BuildLog.htm”
1>节点 - 14 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

回复列表 (共2个回复)

沙发

[url=http://www.worldgodshop.com/]Supra Shoes[/url]   [url=http://www.worldgodshop.com/]Radii shoes[/url]  [url=http://www.worldgodshop.com/]Prada Shoes[/url]   [url=http://www.worldgodshop.com/]Jordan shoes[/url]  [url=http://www.worldgodshop.com/]Christian Louboutin shoes[/url] 
http://www.worldgodshop.com/

板凳

[url=http://www.worldgodshop.com/]Supra Shoes[/url]   [url=http://www.worldgodshop.com/]Radii shoes[/url]  [url=http://www.worldgodshop.com/]Prada Shoes[/url]   [url=http://www.worldgodshop.com/]Jordan shoes[/url]  [url=http://www.worldgodshop.com/]Christian Louboutin shoes[/url] 
http://www.worldgodshop.com/

我来回复

您尚未登录,请登录后再回复。点此登录或注册