注册 登录
编程论坛 C++教室

有点难度 几个学习问题

weiqiang 发布于 2010-11-29 16:25, 606 次点击
一:类模板中的类参数是否可以使用默认参数?如何使用?
二:类模板是否可以重载?如何重载?

希望大牛B的人帮我回答一下问题,谢谢啦!
4 回复
#2
laoyang1032010-11-29 16:30
第一个问题:
   不可以  如果使用默认值参数那还叫模板类干嘛呀
   直接叫类不就行了嘛
第二个问题:
   没听说过  模板本来就已经是C++中的多态了   在重载多态一次
   我还真的不知道是什么概念了
#3
xin3109232010-11-29 23:12
叫三态  四态  哈哈哈
#4
lintaoyn2010-11-30 07:53
程序代码:
#include<iostream>
#include<string>
using std::cout;
using std::endl;
using std::string;
template<class T, class G = string> //G的默认类型为string
class A
{
    T b;
    G a;
public:
    A(T i, G j):b(i),a(j){}
    A():b(),a(){}
};

int _tmain(int argc, _TCHAR* argv[])
{
    A<int> a;
    A<int,int> b;
    return 0;
}
模板参数(函数模板,类模板)都是可以设默认模板参数,标准库的容器,它们的储存分配器,大多就是设成默认值。
从<vector>摘出的:
template<class _Ty,
    class _Ax = allocator<_Ty> >//这里。
    class vector;
2.类模板。。。重载(这个说法本身应该就有问题),函数模板可以重载。
#5
pangding2010-11-30 17:44
第一个问题正如 4 楼所说。这个語法也不陌生,自己“蒙”一下,应该就能蒙对~

第二个问题,重载是针对函数来说的。对象和类型是不能重载的。
1