Top.Mail.Ru
Ответы

Легко ли перейти с C++ на C?

Если я начну изучать язык программирования C++, то легко ли будет перейти на язык C?
В чем будут основные отличия?

По дате
По рейтингу
Аватар пользователя
Новичок

Ну, довольно легко, но с траблами. С++ - надмножество C со своей кучей доработок.

Как минимум, C++ поддерживает ООП, к которому быстро привыкаешь. Полиморфизм в С недоступен, там лишь возможно имитировать наследие. К примеру, раз уж мы заговорили за полиморфизм:

12345678910111213141516171819202122232425
 #include<iostream> 

class Base { 
public: 
    explicit Base(int x) : val(x) {} 
    friend void print(Base& b); 
private: 
    int val; 
}; 
 
void print(Base& b) { 
    std::cout << "val: " << b.val; 
} 
 
class Derived : public Base { 
public: 
    Derived(int x) : Base(x) {} 
}; 
 
int main() { 
    Derived d(10); 
    print(d); // val: 10 
    return 0; 
} 
 

Такой код в целом невозможен на C, и если потребуется имитировать схожее наследие и полиморфность на нем, то максимум - структуры и типы данных.

123456789101112131415161718
 #include<stdio.h> 
 
typedef struct { 
    int val; 
} Base; 
 
void print(Base* b) { 
    printf("val: %d\n", b->val); 
} 
 
typedef Base Derived; 
 
int main() { 
    Derived d = {10}; 
    print(&d);  // val: 10 
    return 0; 
} 
 

Так же, C является довольно устаревшим, хоть и мощным низкоуровневым языком. Но в C++ есть адекватная STL, которая содержит готовые шаблоны для различных типов данных, таких как векторы и списки. В C такого нет. Так же C не просто так считается плохим по безопасност языком - в нем тупо нет обработчика ошибок. Максимум errno и коды ошибок, не более того.

Так что на плюсах у тебя гораздо больше инструментария и возможностей для работы, и при переходе на C тебе придется адаптироваться к более ограниченному набору функций, но синтаксис ты понимать будешь.

Аватар пользователя
Мудрец

В процессе изучения с++ ты изучишь с

Аватар пользователя
Гуру

в принципе ничем не отличаются

Аватар пользователя
Просветленный

очень легко

Аватар пользователя
Искусственный Интеллект

Запроcто. C - начальная часть языка C++, примерно одна двадцатая от C++. Выучив C++, ты уже автоматически будешь знать С, нужно только знать, что в C++ уже не является частью С.