タグ

2016年8月8日のブックマーク (3件)

  • 【C++】参照とポインタ | ヘッドウォータースのブログ TechNote

    こんにちは。良昌です。 最近cocos2d-xを使う機会があり、初めてC++に触れました。C++について様々な記事を読ませて頂いた中で、私自身が参照、ポインタについての整理を出来ていないという事に気付いたので、これを機に纏めてみたいと思います。 私は「結局、参照とポインタってどう使い分けるの?」という疑問を持っていました。ですので、同じ疑問を持っている方に対し、この記事が少しでも参考になればと思っています。私は分かり難い点を少しずつ整理することで、この問題を解決することができましたので、順を追って説明していきたいと思います。 ■参照 参照とポインタを使い分けるにあたって、先に参照を理解しておいたほうが、ポインタを理解し易いと思いますので、まずは参照について説明していきたいと思います。 C++における参照の概念は、他言語と同様、「参照先のオブジェクトを指し示すオブジェクト」となります。 宣言

    【C++】参照とポインタ | ヘッドウォータースのブログ TechNote
    like_futsal
    like_futsal 2016/08/08
    わかりやすい
  • オブジェクト指向言語では、なぜnewでインスタンスを生成するのでしょうか。C言語の構造体のように、newせずに「クラス名hoge;」を書... - Yahoo!知恵袋

    オブジェクト指向言語では、なぜnewでインスタンスを生成するのでしょうか。C言語の構造体のように、newせずに「クラス名 hoge;」 を書くだけで、インスタンス生成と初期化(newの処理)をしてくれればいいのに。 オブジェクト指向言語では、なぜnewでインスタンスを生成するのでしょうか。C言語の構造体のように、newせずに「クラス名 hoge;」 を書くだけで、インスタンス生成と初期化(newの処理)をしてくれればいいのに。 例えば、 Class Dog { 略 } としてDogを定義して、コードの中で Dog pochi; と書くだけで、pochiインスタンスを生成(コンストラクタの実行)をしてほしいのですが、なぜ pochi = new Doc() みたいに、別途書かなければいけないのでしょうか。

    オブジェクト指向言語では、なぜnewでインスタンスを生成するのでしょうか。C言語の構造体のように、newせずに「クラス名hoge;」を書... - Yahoo!知恵袋
  • C++メモ - new演算子の有無による宣言 | システムエンジニアの戯言

    Javaの場合 下のようなコードを実行すると、どうなると思いますか? List 1-1 String name; // 文字列クラスの変数を宣言する。 name.toString(); // nameはNullなので、ぬるぽ発生! name変数のコンストラクタが呼び出されていないため、NullPointerExceptionという例外が発生してしまいます。 これは、Javaに慣れた方ならご存知の事かと思います。 では、これを回避するには、どうしたら良いでしょうか? 下のように、new演算子で初期化しておけば、問題なく実行できますね。 (説明のため、便宜上new演算子を使用していますが、普通は""で初期化します。""を使用する方がメモリ効率の関係上有利です。) List 1-2 String name = new String("Hello World!"); // 文字列を代入する nam

    C++メモ - new演算子の有無による宣言 | システムエンジニアの戯言