C++与C语言的区别01
**** 请自行思考以下区别:
头文件与命名空间
基本输入输出
数据类型
函数思想
一,(1)头文件 改成 ,“iostream”… 等,这些是已经封装好的库
项目文件 应该.cpp 而不是.c
原来的.h文件名不变。
(2)为了提高名字的使用效率引入了民命空间;空间域可以用::来修饰;
using namespace 空间名
作用:省略 变量前的空间限定符;
using namespace std; << 标准空间名
namespace 空间名
{
int a;
void print(){}
}
二,基本输入输出 从scanf ,printf 变为 cout<<, cin>>;还有 endl作为换行;
优点:不需要限定数据类型;
//1.基本变量打印不需要格式控制
cout << "ILoveyou\n";
char str[] = "ILoveyou\n";
cout << str;
三,数据类型的转变
bool类型: falsse and true
指针变量:空类型由NULL转变为nullptr;
引用类型:可理解为起别名
BASIC引用:
类型名& 别名=要起别名的东西;
int a=1;
int& b=a; //a有另一个名字叫b ,a就是b,b就是a
常引用:
类型名&& 别名=右值
int&& a=1; //1就是a ,a就是1
引用的作用:
防止产生拷贝本;
(不能返回局部变量,因为用完即毁掉)
常量必须const 来修饰,这才是真常量;
//1.什么是起别名
int 女朋友 = 1;
//类型 & 别名=要起别名的东西
int& 小可爱 = 女朋友; //小可爱就是女朋友的别名
小可爱 = 777;
cout << 女朋友 << endl;
//2.C++种常量要求更严格
//想要变量和常量,就必须用const修饰
printStr("ILoveyou"); //形参必须要有const
char str[] = "ILoveyou";
printStr(str);
//3.常引用
//int& x = 1; //直接报错,C++对const要求更严格
int aa = 1;
const int& x = 1; //第一种写法:const修饰
const int& x2 = aa;
//右值引用,只能给右值起别名
int&& xx = 1; //常量是右值(运算符的右边)
//int&& xx2 = aa; //右值引用只能给右值起别名
四,函数思想
- 内敛思想 inline关键字
(在类中的函数) - 函数重载: C++允许同名不同参数函数存在
- 参数数目不同
- 参数类型不同
- 参数顺序不同(一定建立在不同类型的基础上)
- 函数缺省: C++中允许给函数形参初始化
- 缺省顺序 必须从右往左缺省,缺省的参数中间不能存在没有缺省的
- 没有参入参数,使用的是默认值
void printData(int a=1, int b=2, int c=3, int d=4)
{
cout << a + b + c + d << endl;
}
总结
C++ 是对C语言的拓展,C++兼容C语言的所有语法特性,
允许初始化形参,这样可以设置默认参数