2011-09-07 16 views
0

<<の演算子オーバーロードがあり、char*をCスタイルの文字列として解釈します。 char*が単一の文字を指している場合、どのようにストリームに出力するのですか?<< operator with char with pointer

ch

答えて

7

タイプchar*であり、実際には単一の文字を指している場合、式の型がcharになるように、*chを使用します。オペレーターは何をすべきかを知るでしょう。あなたがcharため<<をオーバーロードする必要があると思い、その場合(なし*)の場合と表現でそれを使用する前に、あなたのchar*間接参照

1
char c=42;//sadly I could not use my favourite constant 666 
char* pc=&c; 
cout << *pc; 

1
char x = 'a'; 
char *p = &x; 
stream << *p; 
+0

この回答には注意が必要ですか? –

+0

@コードモンキー:拡大するには何がありますか? –

+0

あなたの投稿は、SO自動エンジンごとに低品質の投稿として届きました。私はあなたが説明のようにあなたの答えにもっと多くを加えることができると思います。 –

-1

+1

-1は、これが必要でないだけでなく、許可もされていません。 2つの引数のうちの少なくとも1つが定義した型である演算子のみをオーバーロードする必要があります。 – MSalters

+0

オペランドの反対側で使用されていたタイプ(またはそのタイプ)は誰もいませんでした。 –

関連する問題