typename和模板的使用

#include<iostream>
#include <queue>
#include <iterator>
using namespace std;



class Myarray{
public:
	typedef double LEN;
	LEN Getlength(){
		return 1.23012345;
	}
 }; 
//typename的两种意义
/*
1.表示模板类型的关键字 和class意义相同 但是不像class那样容易和类混淆
2.告诉c++编译器 typename后面的是类型   例如下面的函数  T是类 T:: 表示类的成员 其中LEN为T类中的一个类型。
*/
template< typename T >
void Myethod( T& myarr ){
	typedef typename T::LEN lEN;
	lEN length = myarr.Getlength();
	cout << length << endl;
}
int main()
{
	int n;
	
	node a;
	Myarray m;
	Myethod<Myarray>(m);
	
	return 0;
}

输出结果:

由于默认cout只会打印6位

想要显示完整的小数的方法:

1.    cout << setiosflags(ios::fixed) <<setprecision(x) << length << endl;

如果length不足x位  后面补0

setiosflags在库<iomanip>里面

2.  cout.setprecision(x)

这个函数如果x>length的长度  只会显示实际的小数部分  不会显示0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值