博主:臭飯飯
ID:weixin_42313564
幕布(软件):【账 ID】1398637
博主文章链接:https://mubu.com/doc/explore/16932(使用的幕布笔记)
C与C++的区别—–臭飯飯
-
C 与 C++ 的区别
-
头文件名
- C语言: #include <stdio.h>
- C++: #include <cstdio>
- #include <iostream>
- using namespace std;
-
inline 内联函数
C89 与 C99的区别- https://blog.csdn.net/kekuixiong/article/details/6652254
-
【问题】类的成员方法在类体内定义 和 在类外定义,的区别/strong>
- 类外定义的成员方法,在方法名字前面加类 类型的作用域 类外定义的在调用时,势必有函数调用开销
- 在类体内定义的函数,都自动处理成 inline内联函数
-
函数重载
返回值类型 不管
果 有多个函数的名字相同(若没有函数重载,最终函数生成的函数符 相同)
是 形参列表 不同(参数类型不同 或 参数个数不同)- https://blog.csdn.net/lf_2016/article/details/51769789
- 注意:main函数不能重载,因为程序的入口只能有一个。
- 函数重载仅仅是语法层面的,本质上它们还是不同的函数,占用不同的内存,入口地址也不一样
-
const 限定修饰符
C++编译器对 const常量的处理当碰见常量声明时,在符 表中放入常量;
译过程中若发现使用常量则直接以符 表中的值替换。
译过程中若发现对 const使用了 extern或者 &操作符,则给对应的常量分配存储空间(为了兼容C)。C++编译器虽然可能为const常量分配空间(进行&运算时候),但不会使用其存储空间中的值。-
【修饰函数】
- 在 c++中,const可以修饰类的成员函数,
- 但在 c 中,不能修饰函数。
-
void Time :: fun() const ;
// fun 是 Time类的常成员函数
注意】可以引用,但不能修改本类中的数据成员
-
【变量】
-
C语言:
-
const: 常变量(只读变量,具有不可变性)
eg.- const int Max =100;
-
//int Array[Max];
【 错】,是常变量 - int*p=&Max ;
-
*p=500;
//【正确】可以用过指针间接 访问变量的值
所以是:常变量/span>
-
const: 常变量(只读变量,具有不可变性)
-
C++:
-
const: 常量 编译方式:所有使用常量名字的地方,替换常量的值
与宏定义对比:const常量有数据类型,而宏常量没有数据类型。 -
const: 常变量 就看初始值是不是一个立即数 10 20 30
-
const int &rx = 2;
//将常量赋给相关类型 -
//int &rx = 2;
【错误】 编译出错
-
const int &rx = 2;
-
const: 常量 编译方式:所有使用常量名字的地方,替换常量的值
-
C语言:
-
【修饰函数】
-
头文件名
-
-
-
-
& 引用
汇编层面和指针 一模一样- int a = 10;
- int *p = &a;
- int &b = a;
- *p = 20;
- b = 30;
-
【问题】空类(结构体) 的大小/span>
-
C: 不支持空结构体(Windows下)
认为结构体是将相关联的数据打包成一个整体,所以至少有一个变量。- Linux 下 支持空结构体 size = 0
-
C++: 1
编译器为每个类(结构体)类型数据至少预留 1 个 byte的空间。-
struct 与 class 的区别:
- struct 的成员默认情况下属性是 public 的。
- class 的成员默认情况下属性是 private 的。
-
struct 与 class 的区别:
-
C: 不支持空结构体(Windows下)
-
参数带默认值的函数 && 初始化列表
C++ 特有-
参数带默认值的函数
- Test ( int a=10, int b=10) : ma(a),mb(b) {}
-
初始化列表
- https://blog.csdn.net/WS1347913745/article/details/8682331
-
参数带默认值的函数
-
动态开辟内存
new/malloc delete/free -
C++中定义了4种新式类型转换
为了解决C语言中的旧式类型转换- https://blog.csdn.net/u014038273/article/details/76147956
- static_cast
- const_cast
- dynamic_cast
- reinterpret_cast
-
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!