// my first program in C++
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!";
return 0;
}
cout
はオブジェクトですか? もしそうなら、それはどのようにインスタンス化されますか? (私は "new ....
"のようには見えません)C++でのcout(標準出力)
// my first program in C++
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!";
return 0;
}
cout
はオブジェクトですか? もしそうなら、それはどのようにインスタンス化されますか? (私は "new ....
"のようには見えません)C++でのcout(標準出力)
はい、cout
はオブジェクトです。それは、(一緒にcin
またはcerr
のようないくつかの他のストリーミングオブジェクトで)あなたの後ろ<iostream>
ヘッダファイルでインスタンス化されます:)
COUTは<のiostream >のどこかで宣言されたグローバルオブジェクトです。
ところで、JavaやC#と異なり、オブジェクトを作成するのにnew
は必要ありません。たとえば、これは動作します:
std::string str; // creates a new std::string object called "str"
「
@ybungalobillあなたは正しいです、私は編集しました。 –
Coutは、IOSTREAMヘッダーでインスタンス化したばかりのライブラリの一部です。
はい、プログラムの起動時にC++ランタイムライブラリによって初期化されます。
cout
が対象です。これは、プログラムの起動時に実装によってインスタンス化されます。これは、CRT DLLまたは静的にリンクされたコードで発生する可能性があることを意味します。
現在のC++標準状態(27.3/2):
[...]のオブジェクトが構築され、そして 関連は前または最初 時間オブジェクト間 にある程度の時間が確立されていますメイン の本体が実行を開始する前に、いずれかの場合には、
ios_base::Init
が作成され、 にあります。オブジェクトは実行中に が破棄されず、 が実行されます。
AND([iostream.objects]/2から:
変換部は
<iostream>
または明示ios_base::Init
オブジェクトを作成が含まれている場合、これらのストリーム オブジェクトはの 動的初期化の前に構築されなければなりません非ローカル 翻訳単位で定義されているオブジェクト "
C++の言葉では、翻訳単位は、ファイルと、そのファイルに含まれるすべての/すべてのヘッダーのコンパイラー用語です。
まあ、ファイル、およびそのファイルに含まれるすべての/すべてのヘッダー。 –
@Billy:thnx、corrected – Abhay
あなたは "count"を書きました。それを "コンソールアウト"のように "c-out"と考えることは有益です。同様に、「c-in」があります。 – mpen