题目
补充:这题考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 其实也可以做啊...
个人小抱怨 出题的人只为出题而出题 不像是有实际在写程式的人