C++基础学习复习

【一】命名空间

C++ using namespace std 详解
 所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。

1、域运算符(::)。例如std::ostream而不是ostream。完整语句如下:

std::cout << std::hex<< 3.4<< std::endl;

2、使用using关键字。

using std::cout;
using std::endl;

以上程序可以写成

cout << std::hex<< 3.4<< endl;

3、最方便的就是使用using namespace std;

这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那么以上语句可以如下写:

cout << hex<< 3.4<< endl;

实际运用意义:为了解决合作开发时的命名冲突问题

1.部分使用,域运算符(::)

2.全部使用,using namespace name;

3.别名声明using,使用时加上编译选项-std=c++11;using INT =int;(使用极少)

4.匿名命名空间&取别名(使用极少)

【二】产生随机数代码

#include<iostream>

#include<ctime>

#include<cstdlib>

srand(time(NULL));

int num=rand()%5;(产生0-4之间的随机整数)

【三】各种作用域情况分析

#include<iostream>

using namespace std;

void swapTwoNumber(int &a,int &b)

{        

        a=a^b;

        b=a^b;

        a=a^b;

}

const int b=20;

int b=20;

int &retFunc(int a)

{

        return b;

}

int main()

{

        int a=10;

        int &ra=a;

        cout<<“A=”<<a<<endl;

        cout<<"RA="<<ra<<endl;

        cout<<"&A="<<&a<<endl;

        cout<<"&RA="<<&ra<<endl;

        int a=100;

        int b=200;

        swapTwoNumber(a,b);

        cout<<"A="<<a<<"B="<<b<<endl;

        int &rc=retFunc(10);

        cout<<"RC="<<rc<<endl;

        retFunc(10)=80;

        cout<<"B="<<::b<<endl;

        cout<<&(::b)<<endl;

        return 0;

}

【四】左值引用&右值引用

1.左值引用既可以绑定左值,又可以绑定右值

2.当绑定右值时,必须加上const

const int &rd=3

【五】C++新特性

1.命名空间namespace

2.函数重载与运算符重载

3.引用

4.面向对象特性(封装,继承,多态)

5.泛型编程(模板编程)

6.STL标准库

7.异常处理try—catch

【六】C++输入和输出

流运算符--输入运算符cin>>

输出运算符cout<<

以上均为对象而非关键字,是类中早已定义好的,使用时需要包含头文件iostream;

【七】C++函数

1.带默认值的函数

2.带占位参数的函数

3.函数的重载

【八】函数的重载

1.可以解释为什么返回值不构成函数重载,因为c++的函数名修饰规则不考虑返回值,只将函数名与参数结合起来组成新的函数名。

2.C++调用时会修改函数名(把函数参数与函数名结合)

3.定义:在同一作用域内,参数列表不同,函数名相同的函数。虽然函数名相同,但是函数所在内存位置不同,本质上还是不同的函数。

4.规则:函数名称必须相同,参数列表必须不同(个数不同,类型不同,参数排列顺序不同等)

函数的返回值类型可以相同也可以不同,不足以成为函数重载的依据。

5.关于const------需要根据具体形参含义进行确定。

【九】nullptr

c++11引入nullptr关键字,专门来区分空指针,0

nullptr的类型为nullptr_t,能够隐式转换为任何指针或成员指针的类型,也能和他们进行相等或者不等的比较。

【十】new和delete

new申请一块内存,并且初始化对象

delete释放一块内存,并且销毁对象

【十一】boolleix

bool类型只有两个取值。true和false:true表示“真”,false表示“假”

cout输出bool变量的值还是用数字1和0表示,而不是true或false。

bool isTrue=true;

if(isTrue)

{

        cout<<"True"<<isTrue<<endl;

}

【十二】数组的初始化和赋值

int *arr=new int【4】{1,2,3,4};

cout<<arr[0]<<endl;

delete[]arr;

arr=nullptr;

(注意其中的数组越界:未被使用的空间,数据均为0)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值