笔记:C++

一、C++以及C++基本函数

1、面向对象:将能够实现某一事物的万事万物都封装在一起,称之为类,在类中提供公共的接口,用户可以通过公共的接口对类中的相关属性进行控制。

2、C++兼容C,但是C++的编译器比C语言的编译器更加严格。

3、输出流对象cout:来自于ostream的类对象,用于输出使用。

4、输入流对象cin:来自于istream的类对象,用于输入使用。不需要加endl(endl相当于'\n')

5、cout和cin都是自动识别数据的类型

6、cout格式化控制:关键字版本:oct(八进制)、hex(十六进制)、dec(十进制)。
                                函数版本:setbase(8)、setbase(16)、setbase(10)。
                                设置输出的宽度printf("%5d\n",m)--->cout<<setw(5)<<right<<m<<endl;
                                设置填充字符:cout<<setw(5)<<right<<setfill('*')<<m<<endl;         
       输出小数时默认保留六位有效数字,可以用setprecision保留自定义的有效数字,如果没有使用关键字fixd固定小数点,则setprecision里面的参数是有效数字个数。如果使用关键字fixed固定小数点,则setprecision里面的参数是小数点后几位。                   

二、命名空间

1、C++中的名字:变量名、函数名、数组名、枚举名、结构体名、共用体名、类名...

2、命名空间机制的作用:解决命名冲突或命名污染问题。

3、使用方法:1>加上命名空间名和作用域限定符::
                        2>程序的某个地方部提前声明
                        3>将整个命名空间全部声明

4、定义自己的命名空间:namespace

5、多个命名空间中名字冲突问题:
        1>对于产生冲突的名字,需要使用命名空间和作用域限定符进行修饰,没没有产生冲突的名字不需要加。
        2>命名空间中的名字和全局变量冲突时候,也需要使用命名空间名和作用域和限定符进行区分。全局变量的名字会默认放入匿名空间中,::
        3>命名空间中的名字和局部变量同名时,就近原则访问

6、名字空间中允许嵌套定义,一级一级往下找即可

7、命名空间总结:
        1>系统会默认提供一个标准的命名空间std,使用方式有三种。
        2>系统运行用户自定义属于自己的命名空间。
        3>多个命名空间产生冲突时的解决方式,在名字前面加上命名空间名字和作用域限定符。
        4>命名空间允许嵌套定义
        5>命名空间中如果有函数,一半在命名空间中进行声明,命名空间外进行定义
        6>一个程序中可以出现多个同名的命名空间,编译时系统会自动合成成一个,所以不允许出现同名的相关名字。

三、C++中的字符串                                                  ————————头文件#include<string>

1、C++支持两种语言风格的字符串:C中用字符数组形式存储的的和C++风格的字符串(string类)。

2、初始化和赋值:赋值:‘=’、(“内容”)、{"内容"}、(5,'A'),空内容时大小:32,
                               拷贝:string s2(s1);                2=1+1;string = s1+s2;

3、C风格和C++风格的字符串互换
        1、C++兼容C的语法,C风格不需转换
        2、C++--->C :c_str()、data()      例:string s2;   strcmp(s1,s2.c_str());  strcpy(s1,s2.data())

4、string类中三个重要成员函数
        1、size()或者length():求字符串的实际长度,相当于C语言中的strlen;s1.size()/s1.length()
        2、empty();判空
        3、clear();清空

5、string类型的成员访问at():做越界检查,友好;[ ]不做越界检查,不友好

6、string类型数据的输入:1>不带空格的输入:cin
                                           2>带空格的输入:getline(),关键字

四、bool类型
        1、类型不支持bool类型,但是C++支持
        2、bool类型的值只有两个:true(非0数组)、false(0)
        3、true和false这两个属于关键字,是真和假的常量,不可用作标识符号
        4、bool类型的数据,默认使用数字标识真假,如果想要使用单词标识真假,则需要加上boolapha,在此之后全部都使用单词标识,如果想要继续使用数字表示真假,则需要加上noboolalpha即可。
        5、bool类型所占内存大小为1字节,原则上只需要使用1为即可,但是计算机分配资源的基本单位为1字节,所以给bool类型分配1字节大小的空间。

五、左值引用
        1、引用概念(作用):相当于给变量的内存空间重新起个别名。
        2、格式:数据类型   &引用木名 = 引用的目标;
        3、总计&符号的用途:逻辑与、按位与、取地址、定义引用。
        4、左值:可以放在左侧也可以放在右侧。右值:只可以放在右侧。
        5、使用要求:1、定义引用时,必须用其引用的目标对其初始化。
                                2、引用的目标一旦指定,在程序中就不能对其进行更改了。
                                3、引用与其目标是同一空间,其大小、地址均和目标一致。
                                4、一个目标可以有多个引用。
        6、引用做形参:无需考虑地址传递还是值传递的问题。
        7、引用做返回值:1、普通数据的返回值是值返回,只能做右值使用。
                                       2、引用可以作为函数的返回值,引用函数可以做左值使用。
                                       3、引用函数必须返回生命周期比较长的内存空间:全局变量、静态局部                                     变量、堆区空间中的内存、主调函数通过地址传递进来的形参的空间。
        8、常引用const,1、const修饰的成员,为了保护数据不被修改。
                                     2、const修饰引用,不能通过引用名改变目标的值,但是可以通过目标本身进行改变。               3、定义格式:const数据类型&引用名=引用目标。
        9******重点*****
                1、引用不占用内存空间,引用的空间和目标一致,但是指针分配8字节内存。
                2、定义引用时必须初始化,而指针不用。
                3、引用的目标一旦指定,后期不能更改,但是指针可以。
                4、使用指针之前需要进行合法性检查,但是引用不需要。
                5、有多级指针,但是没有多级应用。
                6、有指针数组,没有引用数组。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

malingshu404

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值