标题:c++primer plus第六版中文版程序清单8.13遇到的一些问题
只看楼主
吹不乱的发型
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-11-17
结帖率:0
已结贴  问题点数:20 回复次数:1 
c++primer plus第六版中文版程序清单8.13遇到的一些问题
#include "stdafx.h"
#include<iostream>
template<typename t>
void swap(t &a,t & b);
struct job
{
 char name[40];
 double salary;
 int floor;
};
template<> void swap <job>( job &j1 ,job &j2 );
void show(job &j);
using namespace std;
int main()
{
cout.precision (2);
 cout.setf (ios_base ::fixed ,ios_base ::floatfield );

 int i=10,j=20;
 cout<<"i,j= "<<i<<" : "<<j <<endl ;
 cout<<" using compilar—generated swap.\n";
 swap (i,j);
 cout<<"now,i,j= "<<i<<" : "<<j<<endl ;
 job sue={"susan",7300.60,7};
 job sidney={" sidney teffee",78060.72,9,};
 cout<<"before job swaping:\n";
 show(sue );
 show(sidney );
 cout<<"after job swaping :\n";
 swap (sue,sidney);
 show(sue );
 show(sidney );
 return 0;
}
template<typename t>
void swap(t &a,t&b)
{
 t temp;
 temp =a;
 a=b;
 b=temp
}
template<> void swap <job>( job &j1 ,job &j2 )
{
 double t1;
int t2;
 t1=j1.salary ;
 t2 =j1.floor ;
 j1 .salary=j2 .salary ;
 j1 .floor =j2 .floor ;
 j2 .salary=t1;
 j2 .floor=t2;
}
void show (job &j)
{
 cout<<j.name<<" :$ "<<j.salary<<
 " ,on floor "<<j.floor <<endl ;
}

无法调用swap函数,每次都显示实参与形参列表不匹配;或对重载函数的调用不明确。
是我哪里错了吗,我用是vs2012
搜索更多相关主题的帖子: generated include double 中文版 
2016-11-17 23:59
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
为什么要取一个跟stl中函数同名的函数?
把 swap 改为 swap_fuck 吧
2016-11-21 09:00



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




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

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