C++入门

1、C++介绍:

C++是C的继承,是C的增强版,起初语言被定义为C with classes,随后C++增加多种特性,比如虚函数、继承、多态、模板、异常处理、命名空间等

C几乎是C++的子集、C++擅长面向对象,也可面向过程。而C是面向过程的,C++解决了命名冲突的问题,不同空间域的相同名字变量可以定义

C++输出以cout为标准输出流对象,<<是操作符,输入以cin为标准输入流对象,>>是操作符,endl是换行操作符

2、为什么C++支持重载,而C不支持?

函数重载:同一作用域,函数名相同,参数不同,个数不同的函数。

一个程序的翻译经过预处理(.i文件)-编译(.s文件)-汇编(.o文件)-链接(a.out)四个部分
问题就出现在链接这个部分,C语言在链接时根据函数名找到调用函数
而C++是根据函数名和参数类型找到该调用的函数

例:

int Add(int a, int b, int c)
{
    return a + b + c;
}

int Add(int a, int b)
{
    return a + b;
}
//cout<<Add(2,4,6)<<endl;  结果为12
//cout<<Add(2,4)<<endl;    结果为6


3、缺省函数


<1>全缺省函数:函数的形参赋值为常数,如调用全缺省函数时实参没有给数,结果返回形参运行结果,如果给了,结果返回实参运行结果
<2>半缺省函数:函数的形参部分赋值为0,调用半缺省函数时实参必须传值给半缺省函数形参中没有赋值的部分
例:

 

//全缺省
int Add1(int a = 0, int b = 0)
{
    return a + b;
}
//半缺省
int Add2(int a, int b = 0)
{
    return a + b;
}
//例如输出
//cout << Add1() << endl;                结果为0
//cout << Add1(1) << endl;                结果为1
//cout << Add1(1, 1) << endl;                    结果为2
//cout << Add2(2) << endl;                结果为2
//cout << Add1(2, 1) << endl;                    结果为3
//cout << Add2() << endl;                *程序崩溃,因为没有给a传值

4、命名空间


用namespace +名字、用花括号括起来需要定义的变量

 

namespace name1
{
    int a = 0;
}
namespace name2
{
    int b = 1;
}

//访问时必须用空间名字::变量名称进行操作,其中::是作用域解析符
//例如将name1中a变量改为5
int main()
{
    name1::a = 5;

    cout << name1::a << endl;

    cout << Add(1, 2, 3) << endl;

    cout << Add(5, 6) << endl;

    cout << Add1() << endl;
    cout << Add1(1) << endl;
    cout << Add1(1,1) << endl;
    cout << Add2(2) << endl;
    cout << Add2(2,1) << endl;

    system("pause");
    return 0;
}


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值