Современный C++ и альтернативы на C

Namespaces и префиксы имён в C

Namespace C++ создаёт scope; библиотеки C добавляют prefix к публичным идентификаторам.

Что такое Namespaces и префиксы имён в C?

Namespace C++ создаёт scope; библиотеки C добавляют prefix к публичным идентификаторам.

Предотвращайте конфликты символов.

Важные моменты

  • Сначала поймите механизм на C.
  • Используйте RAII и value semantics для ownership.
  • Предпочитайте type-safe абстракции макросам и cast.

Примеры кода на C и C++

C
Запустить →
main.c
#include <stdio.h>

int math_square(int value) {
    return value * value;
}

int main(void) {
    printf("%d\n", math_square(7));
}
Ожидаемый результат
49
C++
Запустить →
main.cpp
#include <iostream>

namespace math {
    int square(int value) {
        return value * value;
    }
}

int main() {
    std::cout << math::square(7) << '\n';
}
Ожидаемый результат
49

Сравнение C и C++

Префикс C — соглашение; namespace C++ контролируется компилятором и поддерживает aliases и qualified lookup.

C

C использует префиксы, callbacks, макросы и context-структуры.

C++

Язык предоставляет scoped и type-safe абстракции.

Практические задания

Запустите обе версии и изменяйте их, сравнивая гарантии языков.

  • Сначала напишите механизм на C.
  • Замените ручную очистку на RAII.
  • Измерьте allocation и virtual dispatch.