أين يتم الإعلان عن الكوت؟
-
11-12-2019 - |
سؤال
يريد أستاذ علوم الكمبيوتر الخاص بي أن نجد إعلانًا عن cout
.لقد قمت بتجميع برنامج Hello World بسيط باستخدام g++ والمعلمة -E.إليك ما يبدو عليه ملف hello.cpp الخاص بي:
#include <iostream>
using namespace std;
int main(){
string name="";
cout << "Good morning! What's your name?";
cin >> name;
cout << "Hello " << name << ".\n";
return 0;
}
أمر الترجمة الخاص بي:
g++ -E hello.cpp > hello.p
في hello.p، أجريت بحثًا في VIM، كما يلي:
:/cout
أرى السطر التالي:
extern ostream cout;
هل هذا هو إعلان cout
, ، وهو cout
مثال على ostream
فصل؟
يحرر:
ما هو wcout
إعلان هناك ل؟إذا كنت أتذكر بشكل صحيح، فإن الحرف "w" يرمز إلى "واسع"، لكنني لا أعرف ما الذي يعنيه ذلك.ما هو wcout
و أ wostream
?
المحلول
نعم، هذا هو في الواقع إعلان std::cout
, ، وجدت داخل <iostream>
header.
يمكن العثور على الجزء القياسي ذي الصلة في §27.4.1 [iostream.objects.overview]
:
رأس
<iostream>
ملخص
#include <ios>
#include <streambuf>
#include <istream>
#include <ostream>
namespace std {
extern istream cin;
extern ostream cout;
extern ostream cerr;
extern ostream clog;
extern wistream wcin;
extern wostream wcout;
extern wostream wcerr;
extern wostream wclog;
}
ص1 الرأس
<iostream>
يعلن عن الكائنات التي تربط الكائنات بتدفقات C القياسية التي توفرها الوظائف المعلنة فيها<cstdio>
(27.9.2)، ويتضمن جميع الرؤوس اللازمة لاستخدام هذه الكائنات.
نصائح أخرى
هل هذا إعلان cout، وهل cout مثيل لفئة ostream؟
نعم هذا هو التصريح std::cout
ونعم إنه مثال على ذلك std::ostream
.تم الإعلان عنه extern
بحيث يتم إنشاء الكائن مرة واحدة فقط حتى لو تم تضمين الرأس في وحدات ترجمة متعددة.