タグ

参考になったに関するsiriusjackのブックマーク (2)

  • ポインタ変数を使ってみる

    第1項:ポインタ変数の宣言 第2項:アドレスを代入する 第3項:モードの切り替え 第4項:すなわちショートカット [1]ポインタ変数の宣言 前節では、3種類のポインタに関する説明を行いましたので、 ここでは、実際にポインタ変数を宣言して、感覚をつかんでみたいと思います。 と言うわけで、早速ポインタ変数を宣言する例を示したいのですが、 実は、これがまたやっかいなシロモノだったりするのです。 とりあえず、intへのポインタ型の変数を宣言する例を2つ示します。 int *p; int* p; これが、多くの入門書で紹介されている、ポインタ変数の宣言の書き方です。 この2つは、pという名前のintへのポインタ型の変数を宣言する書き方です。 1つ目の書き方は*pという名前のようですが、*はポインタ型を意味する記号で、 実際には、int型変数のアドレスを記憶するpという変数を宣言してい

    siriusjack
    siriusjack 2013/03/18
    モードという表現が分かりやすいですね
  • Return value and constructor

    戻値とコンストラクタの妖しい関係 C++ では、関数の引数として、ユーザが定義したクラスのオブジェクトが 必要な場合は、たいてい、リファレンスを使う。 そうしないと、引数用に一時オブジェクトが生成され、 オブェクトのコピーが発生するからである。リファレンスを使えば、 一般的にはオブジェクトのアドレスが渡されるだけなので、オブジェクト 全体をコピーするよりはるかに効率的だ。 関数引数はリファレンスで渡すというのは、まあ、常識の部類であろう。 では、関数からの戻値としてオブジェクトを返す必要がある場合はどうだろうか。 オブジェクトが保持している属性値を返すようなときは、 const 修飾子を付けた上で、リファレンスで返すのが普通だろう。 その属性値を含むオブジェクト自身を呼び出し側が保持しているので、 アドレスだけ返しても特に問題はないからだ。 では、新しくオブジェクトを生成して返さなければな

  • 1