C/C++联系与区别小结(其实这个问题很广,这里的只是the tip of the iceberg)

C++兼容C的大部分

C++是面向对象的语言,而C是结构化的语言

C中的变量的定义要在一个函数的最前面,C++只要定义在使用该变量之前就可以了
C和C++中都有结构体的概念,C++中还有类

C定义结构体和定义结构体变量的时候要加struct(union,enum类同)关键字;C++中不必加

 

======


顺便区分一下 C++中的 struct 和 class :
struct 和 class 在大多数情况下等同,但是struct 的成员默认情况下

是public的,class 的成员默认情况下是private的;class可以用于定义

模板参数,但struct不能用于定义模板参数;C++中的struct是对C中的

struct 的全面兼容,可以在定义时直接指定初始值,而class不能。

class的默认继承属性为private,struct的默认继承属性为public。


=======


C++比C多了空类型(void),布尔型(bool)两种数据类型;
强制类型转换C++不仅可以像C一样:(TYPE)var,还可以TYPE(var);
C++的基本输入输出增加了cin>> , cout<<;
C++增加的还有:内置函数,函数重载,函数模板,有默认参数的函数,

字符串类与字符串变量,异常,命名空间和异常处理。


=======

 

关于动态申请和释放内存:
C++中不仅兼容C中的有关动态申请和释放内存的函数malloc()/free(),还

增加了两个动态分配和撤销内存的运算符(注意:由于是运算符,效率有

所提升;并且可以动态产生对象,因为这两个运算符还调用类的的构造方

法和析构方法)


---------------------------------
以下是网上收集的,本人还未搞懂。。。

RTTI

C中的关键字const,与C++中的const意义相同吗?

C++的变量作用域规则,可以拿在C里用吗?

C中自由放任的类型转换,在C++里可以被编译器宽松地pass吗?

在C和C++中,sizeof('a')的结果会相同吗?

C中的的数组限定词,比如如下句法,在C++编译器中上可以pass? 
void foo(char s[static 10]);
void foo(int str[const]);

C++有restrict关键字吗?

C中的逗号操作符","和C++的用法一样吗?

C中的void foo()和C++中的意义一样吗?

C++支持C的VLA吗? 那也就不提动态sizeof了...

.
.
.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值