C++和C语言的不同
1.有内联 c++ inline c有宏 宏是全局搜索替换 内联是简写函数原型处及是定义 不会跳到函数地址执行就在inline处或者加载到那行执行 用空间换效率 什么样的函数适合内联 ?
只有一行代码的小型、非递归型函数适合
函数定义写在 类声明中的函数自动成为内联
2.引用 & c++有引用 定义必须初始化变量 一个变量的别名 int const* name(c语言版本) int& name(c++)
3.struct结构 在c语言中定义声明都需要struct c++中只需要struct定义一次 后面就typeName 的时候完全不需要加struct
而且c++的结构中可以有函数 结构默认是公开的public 类默认是private
4.c++有bool值 c++是面向对象编程 不是面向过程 所以有类方法 每一个对象调用方法其实就是把自己的地址传进去
因为你sizeof 类的时候或者结构 占用的地址只是属性的总和 所以根本没有公共方法 在c语言中实现就是方法中接收一个类型指针 谁调用把自己传进去 所以谁调用显示谁的信息
5.c++默认都是值传递 所以在函数调用的时候 为了简写 类和结构的调用 出现了&引用
将引用参数 声明为常量的引用理由:(const typeName &)
(1)、可以避免对数据造成修改(2)、能够接受const和非const实参(3)、能够正确生成并使用临时变量
如果对象为基本数据类型 一般用值类型 如果为结构或者类推荐用引用这样节省了拷贝的时间跟空间
6.二级指针其实就是指针的数组 int *a 指针 int a[4] int的数组 a[4] 说明有4个int数据的数组 可以用int* 代表指向数组地址 也就是数组0的地址首地址 所以int* a[4] 里面的a[4]说明有4个int*数组的数组 简写就是int* *a
7.函数有默认参数 定义的时候在原型声明即可 定义的时候照常 比如原型void 方法名(int n=1)
默认的放在右面写 不允许在中间 有几个都考右手 只有原型包含默认信息
8. c++ 有new和delete C有maxxxx
9.函数新增了多态(形参数量种类顺序不同)
不能有二义性 比如(double x) (double& ) 传递实参的时候都是一个变量 编译器这就挂了
int *可以代表数组 那么在声明参数的时候最好数组是int []声明 思想解放 等价指针
10、左值 右值左值引用& 右值引用&&
template<class AnyType>
void Swap(AnyType &a, AnyType &b)
{
AnyType c = a;
a = b;
b = c;
};
常见将模板放在头文件中,需要使用的包含头文件即可 允许你重载
具体化(优先于模板):等于重载了特定类型的函数定义和原型声明
template<> void Swap<MyDjj>(MyDjj& a, MyDjj& b)
显示实例化<TypeName> 模板默认是隐示的template void Swap<int>(int& a,int& b)
12、c++有this指针 面向对象 谁调用this指向谁 把自己传进去 this是内指针
本文总结了C++与C语言的区别,包括内联、引用、结构体的不同、bool值、默认参数、多态以及this指针等关键特性。C++的内联函数提供空间换效率,引用作为变量的别名,结构体中可以包含函数,面向对象编程引入了类方法和this指针。此外,还讨论了函数参数的值传递、引用和多态的实现。
11万+

被折叠的 条评论
为什么被折叠?



