C语言和C++的区别

C语言和C++的区别

// C语言—— (1)没有标准模板库(2)没有封装,编程不规范  (3)需要自己初始化和销毁,容易遗漏。
// C++  —— 封装 ---- class ---- 构造函数+析构函数、深浅拷贝、运算符重载、引用、函数重载......
//
//	C++ 学习中我们要看到编译器做了更多的事情(把复杂的细节隐藏起来了)
//       C                        C++
//     ST st;                    ST st;
//     //....                    //....
//     StackPush(&st,1);         st.Push(1);  //本质是:Push(&st,1);
//     StackPush(&st,2);         st.Push(2);
//
C语言C++在多个方面存在区别: - **编程思想**:C语言是面向过程的,如同按步骤做菜;C++则结合了面向对象泛型编程思想,可理解为定义厨师菜谱[^1]。 - **文件扩展名**:C语言源文件扩展名是 `.c`;C++源文件扩展名有 `.cpp`、`.cc` 等,头文件扩展名有 `.hpp` 等,文件后缀不同[^1]。 - **Hello World示例**:C语言使用 `printf("Hello")` 输出;C++使用 `cout << "Hello"` 输出,C语言用函数,C++用对象[^1]。 - **内存管理**:C语言使用 `malloc` `free` 进行内存分配释放;C++除了使用 `new` `delete` 外,还有智能指针,C++的内存管理更安全方便[^1]。 - **函数特性**:C语言不支持函数重载;C++支持函数重载,即同名函数可以做不同的事[^1]。 - **数据结构**:C语言主要使用结构体(`struct`);C++使用类(`class`),类相当于结构体加上方法,可看作是给结构体“添加技能”[^1]。 - **标准版本**:常用的C语言是C89标准,C++C++99标准,如今最新的是C11C++11标准,不同标准功能有所不同,且越新的版本支持的编译器越少[^2]。 - **命名空间**:C语言只有一个全局作用域,标识符可能发生冲突;C++引入了命名空间(名字空间),通过命名空间将全局作用域分成不同部分,不同命名空间里的标识符可以相同[^3]。 ### 代码示例 #### C语言 ```c #include <stdio.h> #include <stdlib.h> // 定义结构体 struct Person { char name[20]; int age; }; // 分配内存 void allocate_memory() { struct Person *p = (struct Person *)malloc(sizeof(struct Person)); if (p != NULL) { free(p); } } int main() { printf("Hello\n"); allocate_memory(); return 0; } ``` #### C++ ```cpp #include <iostream> #include <memory> // 定义类 class Person { public: char name[20]; int age; void print_info() { std::cout << "Name: " << name << ", Age: " << age << std::endl; } }; // 分配内存 void allocate_memory() { std::unique_ptr<Person> p = std::make_unique<Person>(); } int main() { using namespace std; cout << "Hello" << endl; allocate_memory(); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值