| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 529 人关注过本帖
标题:小弟请教C++问题
只看楼主 加入收藏
tenglvjun
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-5-10
收藏
 问题点数:0 回复次数:2 
小弟请教C++问题

//5-1.cpp
//编写一个具有单一类型模板参数的一元函数模板
//用类型int生成它的一个完全特化
//再为这个拥有单一的int参数的函数产生一个非模板重载
//在主函数中调用这三个函数
#include<iostream>
using namespace std;

template<class T> int get(const T& t)
{
return t;
};

template<> int get<int>(int& t)
{
return t;
};

template<class T> int get(int t)
{
return t;
};

int main()
{
const int i = 3;
int j = 1, g = 4;
cout << "get(i) = " << get(i) << endl;
cout << "get(j) = " << get(j) << endl;
cout << "get(g) = " << get(g) << endl;
return 0;
}
那个特化的函数模板为什么会有编译错误啊?

#include<iostream>
#include<vector>
using namespace std;

template<class T, template<class U, class allocator<U> > class Stack
{
private:
Seq<T> seq;
public:
void push_back(const T& t) { seq.push_back(t); }
typename Seq<T>::iterator begin() { return seq.begin(); }
typename Seq<T>::iterator end() { return seq.end(); }
};

int main()
{
Stack<int> stack;
stack.push_back(1);
stack.push_back(2);
for(vector<int>::iterator iter = stack.begin(); iter != stack.end(); ++iter)
cout << *iter << endl;
return 0;

}
这个带有模板参数的模板哪里错了啊?thinking in C++上他的例子就是这样写的,请高手指导~小弟不胜感激

搜索更多相关主题的帖子: int get 函数 
2007-07-29 09:24
使者
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-7-24
收藏
得分:0 

template<class T> int get(const T& t) //int 改成 T
{
return t;
};

template<> int get<int>(int& t) //这个怎么这么杂.
{
return t;
};

改成
int get (int &t)

return t;
}

2007-07-29 11:22
fly813
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-7-28
收藏
得分:0 
template<class T> int get(int t) //由template给出的每一个形式类属参数都必须出现在函数参数表中
{
return t;
};
template<class T, template<class U, class allocator<U> > class Stack 这个类属我看不懂
2007-07-30 13:24
快速回复:小弟请教C++问题
数据加载中...
 
   



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

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