Re: [問題] 兩題C++的問題.樣板與結構
==> yauhh.bbs@ptt.cc (喲) 提到:
> ※ 引述《supercygnus (......)》之銘言:
> : 第一題:試用C++裡function template的方式,
> : 寫出一個swap function,作任何兩個相同型態變數的交換功能。
> : 以下是我的程式碼
> : #include <iostream>
> : #include <cstdlib>
> : using namespace std;
> : template<class T>
> : T swap(T &a,T &b){
> : int temp;
> : temp=a;
> : a=b;
> : b=temp;
> : }
> 這看不出疑點嗎? T 型態的 a, b 透過 int 型態的 temp 做交換處理,
> 很有問題.
改成 T swap (T *a,T *b)
{
T *temp;
temp=a;
a=b;
b=temp;
}
試試看
> : int main(void){
> : cout<<"swap(5,8)="<<swap(5,8)<<endl;
> : system("pause");
> : return 0;
> : }
> : 我有想到用call by reference的方式,可是要怎麼寫到樣版呢~?
> : 目前程式碼不能跑
> : 第二題:利用C語言的語法,定義下列資料型態:
> : Structures BitCard包含三個unsigned bit欄位(fields),
> : 換言之,face, suit, color的長度分別是4, 2及1 bits。
> : 長度分別是4, 2及1 bits。怎麼有這麼短的資料型態,到底是???
> 一般中文書很少提到的一種語法是標記使用位元數的語法:
> struct BitCard { unsigned face:4; unsigned suit:2;
> unsigned color:1; };
> 結構長度不變,但三個欄位會只使用指定數量的位元數目.
--
只有充滿感情的歌聲能阻止世界末日發生,
音樂才是真正的第五元素.
--
☆ [Origin:椰林風情] [From: host-58-115-151-138.dynamic] [Login: **] [Post: **]
討論串 (同標題文章)
完整討論串 (本文為第 5 之 6 篇):