C++入门(1)——基础知识

一、关键字

C++共计63个关键字,相比于C语言的32个关键字,多了将近一倍。下图是我从菜鸟教程https://www.runoob.com/cplusplus/cpp-basic-syntax.html中引入的C++关键字全集。

由于现阶段只是初学C++,本文不对关键字做详尽的介绍,待后期学到再细说。想要了解详细的关键字用法看这里C++ 的关键字(保留字)完整介绍 | 菜鸟教程

 二、输入输出

 C++ 引入了命名空间的概念,计划重新编写库,将类、函数、宏等都统一纳入一个命名空间,这个命名空间的名字就是 std 。 std 是 s tan dard 的缩写,意思是“标准命名空间”。(引用自C语言中文网C++头文件和std命名空间(精辟) (biancheng.net)

总而言之,std是C++标准库的命名空间名,控制输入输出的cin、cout也在std中,因此使用的时候需要按照使用命名空间的规则去使用。命名空间如何使用在此不做赘述,可参看另一篇文章:http://t.csdn.cn/XS6pG

此处我们只是简单学习cin、cout的使用,其背后复杂的原理暂不赘述。

输入:cin;输出:cout;

使用格式:

#include<iostream>  //包含输入输出等的声明的头文件
using namespace std;
int main()
{
    cout<<"Hello world!"<<"I love China!"<<endl;   //endl也是std中的,意思是换行。相当于'\n'
    int a=0;
    cin>>a;    //cin可以自动识别变量的类型。
}

注意!cin和cout都可以自动识别变量的类型,不需要像C语言一样说明变量类型。而且可以通过"<<"或者“>>”实现连续的输入输出。但是有时候使用C++的输入输出方法并不方便。比如说需要控制输出的变量小数点后保留一个确定的位数时,使用C语言printf输出显然更为便捷。因此在实际编写代码的时候,遵循哪个方便用哪个的原则,混合使用C/C++语言。

三、命名空间

详解请看本文http://t.csdn.cn/XS6pG

四、缺省参数

1.概念 

缺省的意思是“默认”。缺省参数是在声明或者定义函数的时候,为函数的参数指定一个“缺省值”。在调用函数传参的时候,如果没有指定的实参,就默认使用缺省值。

void Function(int a=0)//此处为形参a指定了一个缺省参数,如果没有实参则默认a为0
{
    a++;
    cout<<a<<endl;
}
int main()
{
    Function(100);
    Function();
    return 0;
}

结果如下:

2.全缺省参数和半缺省参数 

全缺省参数,顾名思义,就是给函数的所有形参全部赋予一个缺省值。而只有一部分形参(不一定是一半)有缺省值,就是半缺省参数。

要注意的是,传参的时候是从左往右传参,半缺省的时候只能从右往左缺省。下面我们来具体展开一下。

void Fun(int a=0,int b=1,int c=2)
{
}
int main()
{
    Fun(5,6);//函数的形参有3个,但只传了2个,此时形参的值应为
             //a=5,b=6。而c只能取缺省值2;即,传参只能从左往右传。
    return 0;
}
void Fun2(int a,int b=1,int c=2)
{}//这种写法是对的,但是传参的时候a必须要赋值

void Fun3(int a=0,int b,int c)
{}//这种写法是错的,必须从c开始往左设置缺省值。

注意!缺省参数不能在函数声明和定义中同时出现。否则如果二者的缺省参数不一致,编译器无法确定该用那个缺省值。因此我们只需要在函数声明中出现缺省值即可。例如:

void Fun (int a,int b=2,int c=3);
void Fun (int a,int b,int c)
{
    cout<<a<<' '<<b<<' '<<c<<' '<<endl;
}

注意!缺省参数C语言是不支持的。而且缺省值必须是确定的量(常量或者全局变量)。

五、函数重载

重载,意即“一词多义”。C++允许在同一个作用域内存在几个功能类似的同名函数

注意!函数重载要求同名函数的形参个数、类型或类型顺序不同。

void Fun(int a,int b,int c)
{};
void Fun(int a,int b)//参数个数不同
{};
void Fun(double a,int b,int c)//参数类型不同
{};
void Fun(int a,double b,int a)//和上一个类型顺序不同
{};


void Fun(int b,int a,int c)//这个和第一个完全一样!这是重定义而不是重载!
{};

注意!第三中是类型顺序不同而不是参数名字顺序不同!

C++支持函数重载的底层原理与其名字修饰规则有关,同名函数看似“同名”,事实上在编译的时候是有区别的,具体过程目前也暂且不做赘述。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值