C与C++的部分区别

1.函数无形参情况

 1 void test()
 2 {
 3     
 4 }
 5 
 6 int main()
 7 {
 8     test(1,2);
 9     
10     return 0;
11 }

在C语言中形参括号没有参数时代表接受任意多的参数,而在C++语言中代表void(无参数)

所以上述函数在C文件中不会报错,并且成功的调用,但是在C++中会报参数过多的的错误

2.结构体struct

在C语言中并没有面向对象的概念,但是C++中的类class衍生于C语言中的struct,所以,C++中的struct实质上为成员和函数全为public的类,也可以定义构造函数等

1 struct test        class test
2 {           {
3     int i;      public:
4     int j;          int i;
5 }                 int j;
             }

 3.const变量

C语言中const变量只是将变量变成只读变量,C++中const将变量变为常量(与define)相同,但是类成员中const成员是只读变量

只读变量与常量的区别,他们都不能直接修改,但是只读变量可以通过指向他的指针来修改他的值,而常量不准任何方式修改

1 const int i=0;
2 
3 int *p=(int *)&i;
4 
5 *p=2;

C中可行,C++类成员变量可行,但是C++其他变量不可行

 4.函数标识区别

C语言中通过函数名唯一标识函数,所以不存在函数重载,C++中通过函数名参数列表来标识函数,所以函数名相同是可以的,即函数重载

PS:此随笔长期更新

原文地址:https://www.cnblogs.com/cdp1591652208/p/7296386.html