标题:[求助]摸板问题
只看楼主
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
 问题点数:0 回复次数:5 
[求助]摸板问题

#include<iostream>
using std::cout;
using std::endl;
template<typename T>
class beta
{
private:
template<typename V>
class hold
{
private:

V val;
public:

hold(V v=0):val(v){}

void show()const
{
cout<<val<<endl;
}

V Value()const
{
return val;
}

};
hold<T> q;

hold<int> n;
public:

beta(T t,int i):q(t),n(i)
{}

template<typename U>
U blab(U u,T t)
{
return (n.Value()+q.Value()*u/t);
}

void show()const
{
q.show();
n.show();
}
};


int main()
{
beta<double> guy(3.5,3);//这有点看不懂,用普通数据类型来初始化摸板类对象,难道是调用了hold(V v=0):val(v){}
函数进行了自动转换?

guy.show();
cout<<guy.blab(10,2.3)<<endl;
cout<<"Done\n";

return 0;
}



大家来帮帮忙指点我一下

还想问下,如果的确是进行了类型的自动转换的话,这样的方式会不会生成临时对象再进行赋值?

[此贴子已经被作者于2006-8-9 20:55:36编辑过]

搜索更多相关主题的帖子: private include public return hold 
2006-08-09 20:51
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
得分:0 
怎么没人啊
2006-08-09 21:54
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
beta<double> guy(3.5,3);
首先调用嵌套类的构造函数:hold(V v=0):val(v){}
由于这里的q是hold<T>,t也是T类型.所以V这里就是T.
然后调用自己的构造函数:beta(T t,int i):q(t),n(i){}
所以q(t)本身就是就是构造函数,而不是象普通变量那样的赋值.

[此贴子已经被作者于2006-8-9 22:26:22编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-09 22:20
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
得分:0 
这里似乎没有涉及到类型自动转换的

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-08-09 22:24
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
得分:0 

參考 MSDN

Class Template Instruction 那個文章.


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-09 22:58
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
得分:0 
明白了,谢
2006-08-09 23:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-83101-1-1.html




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

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