OOP01 C和C++不同之处

感谢ljj以及分享的同学,好人一生平安。

1. 注释与续行

C99已改,这条不算。

2.输入输出流

自动按照变量的类型输出,不需要在输出时额外指定。

输入按照变量类型输入,不需要在输入时额外指定类型

cout<<a;相当于把a输出到屏幕(箭头指向屏幕),输出的类型看a的类型自动决定

cin>>b; 相当于把b从键盘接收进来,类型为b的类型。

输出可以用cout>>hex>>a;指定输出的进制

输入,输出可以多种类型一起进行

cin>>a>>b>>c;

先输入a,再输入b,在输入c,中间用空格,tab,回车隔开,不允许用别的符号隔开。

3.灵活的变量说明

C99已经改了,这点不算

4.结构、联合和枚举名

如果自定义一个结构名称,C语言必须写struct,c++直接当作用就可以了。

5.函数原型

C可以写函数原型,也可以不写。

C++要求写。

函数原型必须出现在函数定义之前。

规定函数名称,参数类型,返回值,不要求写参数名称。

6.const修饰符

const int a = 5;

C里面一般用#define a 5

const可以是变量后面跟上任意赋值语句

const 可以和指针一起使用

7.void型指针

众所周知,指针就是一个八个字节的地址。至于指针的类型是为了方便编译器,所以说明指针所指内容有多大。

void* 就是可以指向任何内容的指针,不强制规定其指向的内容的类型。可以接收任何指针,

但是赋值时需要强制类型转换。

8.内联函数

inline标注的函数,本质上是宏替换,一般比较简单,不能包含循环语句

9.缺省参数

在函数原型中给定默认参数。

要求缺省参数必须放在参数表最后,调用时如果某个参数省略,其后的参数均需要省略并使用缺省值。

10.函数重载

可以声明多个同名函数,只有参数不同不同。返回值可以不同。

根据参数类型顺序,个数决定调用时使用哪一个函数。

定义同名函数必须在参数表中有区分,不同的返回值是无法区分的。

函数模板:如果只是参数类型不同,参数个数相同,可以使用T,T1等代替参数类型。main函数不能使用模板。

首先使用对T和T1进行声明,然后在定义函数时使用它们代替参数类型。
template < typename T>
可以使用T作为一个类型

template <class T1,typename T2>
使用T1作为类名,使用T2作为参数类型

11.作用域标示符::

前面是类名,如果缺省则代表全局。

后面是类的属性或者方法。

12.无名联合

13.强制类型转换

可以使用 类型(变量名)的语法,比如

float i = float(a);

将a转化为float类型赋值给i

14.动态内存分配

new 代替malloc,delete代替free,new后面跟类名称,返回指向空类的指针。

比如person *p;

p = new person;

delete p;

new的优点:不用写sizeof,直接写类名称。

返回的指针自动匹配不需要强制类型转换。

new可以初始化,需要在类名称后面加上初始值列表

比如:p = new person(‘p’,2);

new后面加上方括号和数字可以申请多维内存,返回第一个内存的首地址。其中第一维可以是任何合法表达式,必须给出所有维数。

p = new person[10];

int i=10;

p=new person[ i ][ 2 ];

删除时在delete前加上方括号,代表删除这个数组。

delete []p;

15.引用

代表该变量地址指向的内容,是隐指针。

比如 int &j= i;

表示j就是i,对j的操作就是对i的操作(已经和python相似了)

引用的时候必须初始化。

在参数传入的时候可以使用 &i, &j

这样不需要传入参数的指针,直接传入参数的值即可。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值