C++入门(一)


首先,c++是完全兼容C语言的,C语言的语法完全可以放到c++中使用

c++输入输出

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World" << endl;
    
    return 0;
}

cin和cout是全局的流对象,endl表示换行输出(用’\n’也行),

<< 是流插入运算符,>>是流提取运算符

使用cin和cout可以自动识别类型,不像printf()和scanf()那样需要手动控制格式

命名空间

命名空间是为了解决变量、函数、类的命名冲突问题

命名空间的定义

命名空间本质上是定义了一个新的作用域

命名空间可以定义变量函数类型

namespace test
{
    int rand = 0;
    int Add(int x, int y)
    {
        return x + y;
	}
}

命名空间还可以嵌套

namespace test1
{
    int a = 0;
    namespace test2
    {
        int b = 0;
	}
}

同一工程文件允许同一名称的命名空间,但最后编译器会合并为同一个命名空间

命名空间的使用

#include <stdio.h>
namespace test
{
    int a = 0;
    int b = 1;
    
    int Add(int x, int y)
    {
        return x + y;
	}
	
    struct Node*
    {
        int val;
        struct Node* next;
	}
}
// 第一种,加命名空间名称及作用域限定符
int main()
{
    printf("%d\n", test::a);
    
    return 0;
}
// 第二种,使用using将命名空间某个成员引入
using test::b;
int main()
{
    printf("%d\n", test::a);
    printf("%d\n", b);
    
    return 0;
}
// 第三种,使用using namespace 将命名空间所有成员引入
using namespace test;
int main()
{
    printf("%d\n", a);
    printf("%d\n", b);
    printf("%d\n", Add(1, 2));
    
    return 0;
}

!!在大型项目中不要全部展开命名空间!!

缺省参数

缺省参数是在声明定义函数时为函数参数指定的一个缺省值(默认值),但默认是声明函数时出现缺省值,定义函数时不出现缺省值

缺省参数分类

全缺省参数

void Func(int a = 10, int b = 20, int c = 30)
{
    cout << "a = " << a << endl;
}

半缺省参数

void Func(int a, int b, int c = 10)
{
    count << "c = " << c << endl;
}

!!注意!!

  1. 半缺省必须从左往右来给出,不能间隔着给
  2. 缺省参数不能在声明和定义同时出现
  3. 缺省值必须是常量或者全局变量

函数重载

函数重载的类型

函数重载简单来讲就是一词多义,是函数的一种特殊情况,c++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的参数个数参数类型类型顺序不同

#include <iostream>

using namespace std;

// 1、参数类型不同
int Add(int x, int y)
{
    return x + y;
}

double Add(double x, double y)
{
    return x + y;
}

// 2、参数个数不同
void Func(int a)
{
    cout << "a" << endl;
}

void Func()
{
    cout << "a" << endl;
}

// 3、参数顺序不同
void Func(int a, double b)
{
    cout << "a" << endl;
}

void Func(double b, int a)
{
    cout << "a" << endl;
}

c++支持函数重载的原因

在c++中,在链接时,对于Add()函数,不同的编译器会有不同的函数名修饰规则,以linux的g++为例,函数名修饰规则为【_Z+函数长度+函数名+参数类型首字母】,所以程序能够识别同名函数

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值