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:此随笔长期更新