[問題] 99台聯大第29題
題目
補充:這題考C++
class Cell
{
public:
Cell(int v){value = v;}
void set(int v){value = v;}
int get(){return value;}
private:
int value;
};
考慮一個C++程式碼,根據以上類別定義
定義函數multiply 傳入兩個物件當參數,回傳一個物件其value值
為兩個參數value值的乘積
函數原型指定為
Cell& multiply(Cell *a, Cell *b) {...}
請定義 {...} 中的內容
我用dev c++ 硬是把碼做出來了
可是總覺得很奇怪,因為用new取得物件的動態記憶體配置時
我只能將他當成長度為1的陣列處理,非常奇怪
能像 int *num = new int;這樣處理嗎?
我的程式碼如下
#include<iostream>
using namespace std;
class Cell
{
public:
Cell(int v){value = v;}
void set(int v){value = v;}
int get(){return value;}
private:
int value;
};
Cell& multiply(Cell *a, Cell *b)
{
int v = ((*a).get()) * ((*b).get());
Cell *ans = new Cell(1);
(*ans).set(v);
return (*ans);
}
int main()
{
Cell a(5),b(7);
printf("%d\n",multiply(&a,&b).get());
system("pause");
}
請問有人知道怎麼處理嗎?
如果有人為我解答我會很感謝你!!
順帶一提 我的物件導向是學咖啡 Orz
其實題目也出得挺腦殘的XD
因為 直接回傳Cell型態也能在外面接住資料,然後進行各種操作啊......
再者,傳入Cell a ,Cell b 其實也可以做啊...
個人小抱怨 出題的人只為出題而出題 不像是有實際在寫程式的人
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.247.229
※ 編輯: longlongint 來自: 114.37.247.229 (06/30 21:48)
※ 編輯: longlongint 來自: 114.37.247.229 (06/30 22:21)
※ 編輯: longlongint 來自: 114.37.247.229 (06/30 23:47)
※ 編輯: longlongint 來自: 114.37.247.229 (06/30 23:49)
推
06/30 23:48, , 1F
06/30 23:48, 1F
→
06/30 23:48, , 2F
06/30 23:48, 2F
→
06/30 23:49, , 3F
06/30 23:49, 3F
→
06/30 23:50, , 4F
06/30 23:50, 4F
→
06/30 23:50, , 5F
06/30 23:50, 5F
→
06/30 23:50, , 6F
06/30 23:50, 6F
→
06/30 23:54, , 7F
06/30 23:54, 7F
→
06/30 23:54, , 8F
06/30 23:54, 8F
→
07/01 00:01, , 9F
07/01 00:01, 9F
※ 編輯: longlongint 來自: 114.44.214.123 (07/01 14:28)
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
問題
1
9