| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1011 人关注过本帖
标题:[求助]怎么改这道C++的题目谢谢拉
只看楼主 加入收藏
天才
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-6-24
收藏
 问题点数:0 回复次数:14 
[求助]怎么改这道C++的题目谢谢拉

怎么改这道C++的题目使T1和T2用不同的数据类型
#include<iostream>
#include<string>

using namespace std;

template<class T1,class T2>
class Pair
{
public:
Pair(T1 f,T2 s)
{
first=f;second=s;
}
void set(T1 f,T2 s)
{
first=f;second=s;
}
T1 getf()const
{
return first;
}
T2 gets()const
{
return second;
}
void swap()
{
T1 temp=first;
first=second;
second=temp;
}
private:
T1 first;
T2 second;

};

int main()
{
Pair<int,int> p(10,11);
cout<<p.getf()<<" "<<p.gets()<<endl;
p.set(9,12);
cout<<p.getf()<<" "<<p.gets()<<endl;
p.swap();
cout<<p.getf()<<" "<<p.gets()<<endl;
system("pause");
return 0;
}

搜索更多相关主题的帖子: include public return second 
2006-06-25 21:16
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
有个中间函数做类型转换
然后用那个函数来调用模块

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-06-26 10:05
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
void swap()
{
T1 temp=first;
first=second;
second=temp;
}这里需要类型转换.我是说如果是自己定义的类型的话,你的类里要写构造类型转换,或则类型转换函数

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-06-26 10:57
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
void swap()
{
set(second, first);
//T1 temp=first;
//first=second;
//second=temp;
}

会有数据失真

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-06-26 11:18
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

怎么会有丢失呢
set类型也是T 啊
要是有丢他们都要丢失呀


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-06-26 11:23
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
song4,

我是上海人, 我们不使用您称, 所以从这一点来讲, 我们要比北方人少一份虚伪.
我建议将您这个字眼从中文中删除, 看这就讨厌.

我用事实来说话. 请你试一下下面的代码:


#include<iostream>
#include<string>

using namespace std;

template<class T1,class T2>
class Pair
{
public:
Pair(T1 f,T2 s)
{
first=f;
second=s;
}
void set(T1 f,T2 s)
{
first=f;
second=s;
}
T1 getf()const
{
return first;
}
T2 gets()const
{
return second;
}
void swap()
{
set(second, first);
//T1 temp=first;
//first=second;
//second=temp;
}
private:
T1 first;
T2 second;

};

int main()
{
Pair<int,float> p(10, 3.4f);
p.swap();
cout<<p.getf()<<\" \"<<p.gets()<<endl;
system(\"pause\");
return 0;
}



自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-06-26 11:29
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
我们老师常用"您"跟我说话,所以我跟他说话也很不自在
就感觉我好象没有礼貌,所以以后我都会尽量用
但看来每个人都不一样,呵呵

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-06-26 11:36
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

那不就是要丢就全在swap里面丢么
Pair<float,float> p(10.2f, 3.4f);
改成这样不久不丢了
我是这个意思


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-06-26 11:42
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
哼, 这确实是个问题, 你的老师很不平易近人. 这种人少见为妙. 什么时候, 你把他的 Email 地址给我, 我来跟他谈谈.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-06-26 11:45
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
[QUOTE]那不就是要丢就全在swap里面丢么
Pair<float,float> p(10.2f, 3.4f);
改成这样不久不丢了[/QUOTE]

你改成这样, 就没意思了, 这个不是楼主想要的.

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-06-26 11:47
快速回复:[求助]怎么改这道C++的题目谢谢拉
数据加载中...
 
   



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

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