| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1507 人关注过本帖
标题:下面的代码红色报错,为什么?
只看楼主 加入收藏
fishviv
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2010-9-10
结帖率:90.91%
收藏
 问题点数:0 回复次数:13 
下面的代码红色报错,为什么?
#include<iostream>
#include"vector.h"
#include<iomanip>
#define N 4
using namespace std;
template<typename T>
struct Stack{
    Stack(){}
    ~Stack() {clear();}
    bool empty(void) const {return vector<T>::empty();}
    int  size (void) const {return vector<T>::size();}
    int  top(void)  {return vector<T>::back();}
    void pop(void)  {vector<T>::pop_back();}
    void push(int v){vector<T>::push_back(v);}
    void clear(void){vector<T>::clear();}
};
Stack*edge = new Stack[N];
//F:\Cpp\deepfind.cpp(17) : error C2955: 'Stack' : use of class template requires template argument list
        F:\Cpp\deepfind.cpp(16) : see declaration of 'Stack'


[ 本帖最后由 fishviv 于 2010-12-25 20:14 编辑 ]
搜索更多相关主题的帖子: void include return 
2010-12-25 18:31
fishviv
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2010-9-10
收藏
得分:0 
hhh
2010-12-25 20:15
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
不懂啊,顶一下。

   唯实惟新 至诚致志
2010-12-25 22:24
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
use of class template requires template argument list
看错误“用模版类要求提供模版参数”。

就是得写成 Stack<int> 之类的这个样子。
2010-12-25 22:39
fishviv
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2010-9-10
收藏
得分:0 
回复 4楼 pangding
这样改过,可是又有报错说,empty是属于vector...
2010-12-26 11:15
df19861017
Rank: 2
等 级:论坛游民
帖 子:15
专家分:29
注 册:2010-9-30
收藏
得分:0 
声明错误!stack<T> ****
2010-12-26 16:54
xin310923
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:203
专家分:325
注 册:2009-12-22
收藏
得分:0 
#include<iostream>
#include<vector>
#include<iomanip>
#define N 4
using namespace std;
template<typename T>
struct Stack{
    Stack(){}
    ~Stack() {clear();}
    bool empty(void) const {return vector<T>::empty();}
    int  size (void) const {return vector<T>::size();}
    int  top(void)  {return vector<T>::back();}
    void pop(void)  {vector<T>::pop_back();}
    void push(int v){vector<T>::push_back(v);}
    void clear(void){vector<T>::clear();}
};
只能帮你到这一步   模版我还学过  不会
2010-12-27 01:24
xin310923
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:203
专家分:325
注 册:2009-12-22
收藏
得分:0 
还没学过模版   悲剧
2010-12-27 01:25
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
回复 5楼 fishviv
你把完整的代码发上来看一下。
2010-12-27 20:38
megadeath
Rank: 4
等 级:业余侠客
帖 子:24
专家分:260
注 册:2008-8-29
收藏
得分:0 
错误已经说明了,Stack 没有模板参数列表。

应该如下定义

Stack<int> * edge = new Stack<int>[N];

另外没看懂LZ的程序在干什么。
2010-12-28 23:55
快速回复:下面的代码红色报错,为什么?
数据加载中...
 
   



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

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