تخطي إلى المحتوى

لا يمكن تحويل هذا النوع من الملفات في المتصفح.

┐─ تحليل الملف ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
المطور : Bjarne Stroustrup / ISO
الفئة : شفرة
نوع MIME : text/x-c++src
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

ما هو ملف CPP؟

ملفات .cpp تحتوي على شفرة مصدرية بلغة C++، التي أنشأها Bjarne Stroustrup في مختبرات بيل عام 1979 تحت اسم “C مع كلاسات” قبل أن تُعيد تسميتها C++ عام 1983. صُممت C++ كامتداد لـ C: تضيف البرمجة الكائنية (OOP) والقوالب (Templates) وإدارة الموارد بـ RAII ومكتبة القوالب القياسية (STL) مع الحفاظ على كامل أداء C والتحكم في الذاكرة.

المميز في C++ أنها تتيح كتابة كود عالي المستوى مع الاحتفاظ بإمكانية “الانزلاق” لعمليات منخفضة المستوى — مما يجعلها الخيار الأمثل حيث الأداء غير قابل للتفاوض: محركات الألعاب والمتصفحات وقواعد البيانات وأنظمة التداول المالي.

كيفية فتح ملفات CPP

  • Visual Studio (ويندوز) — المعيار الصناعي لـ C++ مع Intellisense وMSVC
  • CLion من JetBrains (ويندوز، ماك، لينكس) — بيئة تطوير C++ متكاملة بـ CMake
  • VS Code مع إضافة C/C++ أو clangd (ويندوز، ماك، لينكس) — خفيف ومرن
  • Xcode (ماك) — لمشاريع Apple مع دعم Metal وObjective-C++
  • أي محرر نصوص — ملفات CPP نص عادي قابل للقراءة

المواصفات التقنية

الخاصيةالقيمة
نوع MIMEtext/x-c++src
نظام الأنواعثابت وقوي
النموذجمتعدد: OOP، إجرائي، وظيفي، عام (Generic)
المترجماتGCC (g++)، Clang++، MSVC، Intel C++
المعيار الحاليC++23
إدارة الذاكرةيدوية + RAII + Smart Pointers
أداة البناءCMake، Meson، Bazel

الاستخدامات الشائعة

  • محركات الألعاب: Unreal Engine 5 كتب بـ C++ بالكامل؛ Unity يستخدم C++ للكود الأصلي
  • المتصفحات: Chrome وFirefox وSafari كلها مكتوبة أساساً بـ C++
  • قواعد البيانات: MySQL وPostgreSQL وSQLite ومحرك RocksDB من Facebook بـ C++
  • التداول عالي التردد (HFT): أنظمة التداول الخوارزمي التي تُنفّذ في ميكروثوانٍ
  • نظام التشغيل: أجزاء من ويندوز وmacOS وAndroid مكتوبة بـ C++
  • رسوميات الحاسوب: محركات رندر مثل RenderMan وV-Ray وArnold بـ C++

مثال كود C++ حديث (C++17)

#include <iostream>
#include <vector>
#include <algorithm>
#include <memory>

// قالب (Template) لفئة عامة
template<typename T>
class Stack {
private:
    std::vector<T> data_;

public:
    void push(T value) { data_.push_back(std::move(value)); }

    void pop() {
        if (data_.empty()) throw std::runtime_error("المكدس فارغ!");
        data_.pop_back();
    }

    const T& top() const { return data_.back(); }
    bool empty() const { return data_.empty(); }
    size_t size() const { return data_.size(); }
};

int main() {
    Stack<int> stack;
    stack.push(10);
    stack.push(20);
    stack.push(30);

    std::cout << "القمة: " << stack.top() << "\n";  // 30

    // Lambda و Range-based for
    std::vector<int> numbers = {5, 3, 1, 4, 2};
    std::sort(numbers.begin(), numbers.end(), [](int a, int b) {
        return a < b;
    });

    for (const auto& n : numbers) {
        std::cout << n << " ";  // 1 2 3 4 5
    }

    return 0;
}

أوامر الترجمة

# ترجمة بـ g++ مع معيار C++17
g++ -std=c++17 -Wall -O2 -o myapp main.cpp

# إنشاء مشروع CMake
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
cmake --build build

# ترجمة بـ Clang
clang++ -std=c++20 -Wall -o myapp main.cpp

C++ مقابل C مقابل Rust

الميزةC++CRust
أمان الذاكرةجزئي (smart ptr)❌ يدوي✅ مضمون
الأداء✅ مرتفع✅ مرتفع✅ مرتفع
البرمجة الكائنيةجزئي (traits)
تعقيد اللغةصعبمتوسطصعب
الأنظمة المدمجة✅ الأفضل