0

C++ では、オブジェクトをパラメーターとして関数に渡す方法が複数あります。私は値と参照による受け渡しについて読んでいます。

これらのリンクは非常に役に立ちました:

http://www.yoda.arachsys.com/java/passing.html http://www.yoda.arachsys.com/csharp/parameters.html

そして、今気になっているc++の場合、こんな記事も見ました。

http://www.learncpp.com/cpp-tutorial/73-passing-arguments-by-reference/

これらは、値渡しと参照渡しの違いに入ります。また、この最後の記事では、この問題に関するいくつかの長所と短所も示しています。関数でオブジェクトが変更されていない場合に、パラメーターを値として渡すことの長所と短所を知りたいです。

int f(sockaddr_in s) {
// Don't change anything about s
}

int f(sockaddr_in *s) {
// Don't change anything about s
}

どちらも、持っている変数にアクセスできます。しかし、どちらを使用すべきか、またその理由を知りたいです。

4

2 に答える 2

1

c++ の基本的なことを無視しています: const の正しさ: 宣言 'int f(sockaddr_in *s)' はそれに違反しています。「int f(sockaddr_in s)」は合理的ではなく、合理的かもしれません (とにかく、sockaddr_in は小さいかコピーされています)。したがって、「int f(const sockaddr_in& s)」と「int f(sockaddr_in s)」の両方が適切な選択になる場合があります。

于 2013-10-28T14:14:49.490 に答える