الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الفرق بين و

مغلق
بدأه هاني الأتاسي في 15 يوليو 2001 · 12 رد · 8,690 مشاهدة · في قسم المواضيع الهامة في قسم السي /سي++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

واحدة بامتداد والأخرى من غير امتداد .....؟ فما هو الفرق ..؟

للذين لايعرفون الفرق إليكم بهذه المعلومة ..

طبعا كلنا نعلم بوجود مكتبة السي++ القياسية أو Standard C++ Library . يوجد من هذه المكتبة نسختين واحدة قديمة والاخرى حديثة . القدية ظهرت مع ظهور السي++ . وكانت تحتوي على القليل من الClasses من أهمهم ال iostream و fstream و .... . ومع زيادة المتطلبات وظهور ال STL (Standard Template Library) . تم اصدار نسخة جديدة من مكتبة السي++ القياسية ..

فمن أجل أن تفرق في مابينهم في الفيجوال سي++ : إذا أردت استخدام القديمة أكتب أسماء الملفات مع ذكر الامتداد والجديدة اكتبهم من غير امتداد ..

طبعا سوف تختلف المكتبة التي سوف يربط معاها برنامجك ، ففي حالة الربط الديناميكي فسوف تستخدم هذه المكتبات :

MSVCRT.DLL : في حالة مكتبة السي القياسية .

MSCVIRT.DLL : في حالة مكتبة السي ++ القياسية القديمة .

MCVCPRT.DLL : في حالة مكتبة السي ++ القياسية الجديدة .

ولكن يحب أن ننتبه إلى موضوع وهو أنه عندما نكتب فإن المترجم يحولها إلى :

#include namespace std {}

وبالتالي فإن جميع التعريفات والتصريحات دخل المكتبة سوف تكون داخل ال std scope وبالتالي يجب أن تكتب التالي من أجل الطباعة مثلا :

std::cout :)

Coding on the Cloud and for the Cloud!

My Blog

#2

السلام عليكم.

أشكرك أخي هاني على هذه المعلومة الجديدة ووفقك الله.

مع التحيات.

#3

one more time I have learned some new for me thanks for that and keep on teaching people like me thanks alot.

#4

أود رفع هذا الموضوع ... علّ المبتدئين يستفيدون منـه .. ويعرفون الفرق بين تضمين مساحة الأسماء القياسية وعـدم تضمينها

#5

موضوع قيم

جزاك الله خير أخي هاني الاتاسي

واخي سلطان الثبيتي على الرفع الجميـل

:)

#6

cin & cout & endl موجودة في مكتبة iostream.h

لكن أين يمكن أن أجد fixed في المكتبات القديمة ذات اللاحقة .h

?!?!

أتمنى أن تبقى حياتي دمعة و ابتسامة

دمعة تطهر قلبي وأشارك بها منسحقي القلوب

و ابتسامة تكون عنوان فرحي بوجودي و شكري للآلهة

#7

أمس كنت ناوي أستذكر معلوماتي في السي ++ ، فقلت نجرب نشغل ++g ونكتب كود بسيط ،

#include <iostream.h>

main()
{
  cout << "Welcom to C++ OMLX \n";
	return 0;
}

وبعدين سويت كومبايل بالسطر التالي:

g++ first.cpp

سوى الترجمة ولكن شوف إيش طلع معاه:

In file included from /ArabianCD/usr/bin/../lib/gcc/i486-linux-gnu/4.0.2/../../../../include/c++/4.0.2/backward/iostream.h:31,
                 from first.cpp:1:
/ArabianCD/usr/bin/../lib/gcc/i486-linux-gnu/4.0.2/../../../../include/c++/4.0.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
first.cpp:7:2: warning: no newline at end of file

ولكن لما أعدت كتابة الكود السابق بطريقة محترمة B) لتصبح كالتالي:

#include <iostream>

 int main()
{
  std::cout << "Welcom to C++ OMLX \n";
	return 0;
}

مشى عادي جدا ، ومفيش مشاكل ،،، (h) و الناتج طبعا:

arabian@arabian:/ramdisk/home/arabian$ ./a.out
Welcom to C++ OMLX
#8

هذا لأن أول برنامج لم تصرح في أوله عن استخدامك لstd هكذا

#include <iostream>
using namespace std;

تم تعديل هذه المشاركة بواسطة bashmohandes في 25 ديسمبر 2005 في 12:05

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#9

ليست هذه هي النقطة .. لاحظ انه يستخدم .h في البرنامج الأول ...!

#10

الذي جرني إلى هذا هو أن كتاب How to program C++ الإنجليزي يذكر الطريقة الثانية ، أما ترجمته من كتاب الشعاع يذكر الطريقة اﻷولى ،،، في كل الكتاب ولم يشرإلى ذلك ..!!

#11

قبل مدة طويلة لم يكن هـناك مساحات الأسماء ولا القوالب ولا المتغير bool ...

هذه الأشياء الجـديدة ظهرت بعـد ذلك ... (النمط bool تم دعـمه من الأنسي حسب ما أذكر عام 98 ) .....

المشكلة إذاً في أنك استخدمت هذه التقنيات القديمـة .... على مترجم أعتقد أنه يدعـم الصورة القياسية ...

من الممكن أن هذه الطريقـة

#include <iostream.h>

قد أصبحت الآنسي لا تدعمها حالياً

مجرد افتراض

#12

fixed

اليست موجوده في المكتبة

#include<iomanip.h>
#13

في البرنامج السابق كانت المشكلة في نسيان كتابة int قبل ال main وليس في امتداد اسم المكتبة iostream

هذا الموضوع مغلق.

مواضيع مشابهة