作者renderer (rendering)
看板C_and_CPP
标题Re: [问题] C++ 不能像 Java 一样,完全避掉 pointe …
时间Fri Nov 25 21:01:13 2005
※ 引述《eliang ()》之铭言:
: 我自己在写程式的时候, 对於 reference 和 pointer 的选择方式是:
: 「尽量使用 reference, 不能用 reference 时才用 pointer」
: 可是这样会造成整体不一致, 因为有地方用 reference, 有地方用 pointer,
: 写程式时常常会搞不清楚当初宣告的型别是什麽, 而要回头去查前面的程式码,
: 想学 Java 完全都使用 reference 也不行, 因为以下用法都不合法:
: int& a[10]; // 10 个 int 的 reference, 可以分别参考 10 个 int
: vector<int&> b; // 元素为 int& 的动态阵列
: 结论是:
: reference 和 pointer 混用 -> 一致性差, 造成写程式不方便
: 完全使用 reference -> 行不通
: 那麽是不是乾脆一律用 pointer 还比较好?
: 请问大家是怎麽选择的?
我个人习惯:「output parameters 用 pointer,input parameters 用 reference」
如:
class Matrix
{
public:
static void Add(Matrix* out, const Matrix& a, const Matrix& b)
{
// out = a + b;
}
};
Matrix a,b,c;
Matrix::Add(&c, a, b);
其意在於:「把 pointer 传给 Function,有付予 Function 写值权利的意含,而
非 pointer 的传入,仅代表资料的传入。」
这是我个人的习惯,可以某一程度地增加程式的可读性。
另外 association 的 relationship 我也用 pointer,理由是 association 使用
reference 会造成语意不佳。当然,这也是个人习惯。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.221.77
※ 编辑: renderer 来自: 61.228.221.77 (11/25 21:06)
1F:推 crain:感觉挺有道理的:) 又学了一课:p 11/25 21:48
2F:推 weitsoo:association 的relationship...这是什麽意思阿? 11/28 23:19