1. ホーム
  2. c++

[解決済み] C++で->はどういう意味ですか?重複

2022-03-11 13:46:40

質問

<ブロッククオート

重複の可能性があります。
C++のドット(.)演算子と->の違いは何ですか?
C++で矢印演算子(->)の同義語は何ですか?

ヘッダーがすべてを語っています。

とは何ですか? -> はC++でどういう意味ですか?

どのように解決するのですか?

オブジェクトのメンバ関数やメンバ変数にアクセスするために ポインタ 通常の変数や参照とは対照的です。

例えば、通常の変数や参照では、以下のようになります。 . 演算子を使って、メンバー関数やメンバー変数にアクセスすることができます。

std::string s = "abc";
std::cout << s.length() << std::endl;

しかし、ポインターを扱う場合には -> 演算子を使用します。

std::string* s = new std::string("abc");
std::cout << s->length() << std::endl;

また、特定のオブジェクト型に対して特定の機能を実行するためにオーバーロードすることも可能です。 のようなスマートポインタは shared_ptrunique_ptr STL コンテナ・イテレータと同様に、この演算子をオーバーロードして、ネイティブのポインタ・セマンティクスを模倣しています。

例えば

std::map<int, int>::iterator it = mymap.begin(), end = mymap.end();
for (; it != end; ++it)
    std::cout << it->first << std::endl;