模板问题?????
#include <iostream.h>
template <class T> class CThree
{
public :
CThree(T t1,T t2,T t3);
T Min();
T Max();
private:
T a,b,c;
};
template <class T>
T CThree<T>::Min()
{
T minab=a<b?a:b;
return minab<c?minab:c;
}
template <class T>
T CThree<T>::Max()
{
T maxab=a>b?a:b;
return maxab>c?minab:c;
}
template <class T>
CThree<T>::CThree(T t1,T t2,T t3)
:a(t1),b(t2),c(t3)
{
return;
}
其中的CThree<T>::CThree(T t1,T t2,T t3)
:a(t1),b(t2),c(t3)
是什么意思?????????????
问题点数:20、回复次数:5Top
1 楼kimryo(God is on my side)回复于 2002-02-28 17:19:29 得分 5
是构造函数的实体阿(implementation).
:a(t1),b(t2),c(t3)
是初始化列表。Top
2 楼public(九天十地菩萨摇头怕怕,霹雳金光雷电掌@!@)回复于 2002-02-28 17:25:14 得分 0
初始化列表???
有介绍这方面的资料么?/?????????/网上/书上/你脑袋里Top
3 楼rediori(江枫)回复于 2002-02-28 17:31:14 得分 5
CThree< T> ::CThree(T t1,T t2,T t3)
:a(t1),b(t2),c(t3)
{
return;
}
等于
CThree< T> ::CThree(T t1,T t2,T t3)
{
a= t1;
b= t2;
c= t3;
return;
}
现在明白了吧Top
4 楼idoloveyou(从高二开始上CSDN的人现在都工作了)回复于 2002-02-28 17:43:56 得分 5
就是在构造函数执行之前执行
a=t1;
b=t2;
c=t3;Top
5 楼niu_a(阿牛)回复于 2002-02-28 18:11:55 得分 5
:a(t1),
.
a,b,c如果是类,就会直接调用a(t1)构造,
如果是
{
a=t1;
}先调用a()构造,在调用operator = (const A&)赋值
如果a不是类对象,则无区别Top




