سؤال

يريد أستاذ علوم الكمبيوتر الخاص بي أن نجد إعلانًا عن 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 بحيث يتم إنشاء الكائن مرة واحدة فقط حتى لو تم تضمين الرأس في وحدات ترجمة متعددة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top