C++ の -> と .

オンラインコンパイラー便利ですね。

けっこう使うようになりました。

そういえば、Objective-C で -> や . の取り扱いってどうなんだっけ?と疑問に思ったんだが、まずは C++ で復習。

以下のような簡単なサンプルを書いてみる。

#include <iostream>
#include <string>

struct sample {
int number;
char chara;
};

int main()
{
struct sample s1;
struct sample* s2;
s2 = &s1;

s2->number = 123;

std::cout << "s1 number= " << s1.number << std::endl;
std::cout << "s2 number= " << s2->number << std::endl;

}

今回、使ったオンライン環境はこちら

結果は以下のようになった。

世の教科書の教え通り

通常の構造体への変数として定義した s1 のメンバー変数にアクセスするときは . (ドット)

sample 構造体へのポインタ変数として定義した s2 のメンバー変数にアクセスするときは -> (アロー)

でうまくいく。

 

カテゴリーC++
クリックclose

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です