c++学习笔记

复合类型变量:
引用,指针,数组

指针数组

数组是保存相同类型的数据,指针数组,就是保存相同类型的指针,指针数组中的元素是指针

常量引用:在引用前加const;
常量引用是对引用做了规定,不能通过引用修改对象的值

指针和const
const会修饰从它之后的所有内容,如果在整个指针之前就是表示修饰的整个指针,指针指向的是const,不能通过指针修改指向对象的内容

指针主要分两个:指向和修改,前面的const表示不能修改,后面的const表示不能改变指向

常量表达式:
常量才能构成常量表达式

类型别名:typedef给类型名起绰号

auto类型,值需要定义初始值,auto的类型就是初始值的类型

decltype方法,如果参数是变量,则获取变量类型,如果参数是函数,则获取函数返回值类型

数组,指针访问和下标访问数组

begin和end函数,begin指向数组头,end指向数组尾的后一个

指针运算:指针和数子的加减,同类型指针之间的加减

vector:
vector是类模板
列表初始化vector对象

给vector对象赋值
1、使用其他vector对象赋值
2、使用{}直接给出我们需要的值
3、使用()指定数目和需要的值,例如(10, 1),表示给vector写入十个1

对于vector初始化的时候,括号的类型有分别,()表示数量和值,{}表示直接写入的元素
创建指定数量的元素
vector迭代器

c++中的类:
构造函数是类初始化的时候需要调用的函数,还需要定义拷贝,赋值和销毁对象,调用的函数,如果我们不定义,编译器会帮我们定义
但是有的时候,编译器定义的会失效,所以我们需要自己定义
类需要分配类对象之外的资源的时候,编译器生成的就会失效

vector和string对象在编译器生成的类的拷贝,赋值中可以正常使用

拷贝构造函数:应该是拷贝对象时会调用的构造函数

访问控制和封装:

struct和class的默认权限不同;struct在第一个访问说明符之前的内容,默认为public,class默认未private

类的友元,友元函数,友元类
如果需要访问某个类的非公有成员
友元函数:需要在类中声明友元函数,友元函数以friend关键字开头

令成员作为内联函数

成员函数重载,参数不同

可变数据成员;可变数据成员比const优先级高
mutable对象在const函数中也可以被修改

类的管理类;
定义类内初始值

返回*this的成员函数

返回*this,返回值类型是引用类型
返回的是左值,则放回对象本身,可以通过返回值调用对象的其他函数或者对象
如果是从const函数中返回,则返回的是一个const对象,不能通过const对象,进行赋值

当一个成员调用另一个成员时,this指针在其中隐式的传递

基于const的重载:由于隐含的this形参的存在,所以这种重载是合法的
int function ();
int function () const;

类允许包含指向自身类型的引用或指针

每个类定义了唯一的类型,即使两个类的成员函数完全一样,也是两个类型

类类型,一种类的类型,用这种类型名,可以声明这种类

一个类的成员,需要访问另外一个类私有成员:指定友元类就可以实现了

友元类的成员函数,可以访问此类的所有成员;也可以令类的成员函数作为友元,使用friend声明友元的时候只声明类的成员函数即可

重载与友元;重载的函数是两个函数,所以声明友元的时候两个都要声明

友元声明和作用域;可以在类内定义友元,同时也一定需要在类外声明友元函数,只有在类外声明了的友元函数之后,对类的成员函数才算可见

一个类就是一个作用域
定义在外部的成员;在类外部定义的成员函数,也是属于类的作用域,成员函数之间也是可以相互使用的

IO类
我们不能拷贝或对IO对象赋值

流处于错误状态,就不能从中读写数据
查询流的状态

每一个输出流都管理一个缓冲区
因为流不能拷贝和赋值,所以流作为函数参数或者是返回值必须是引用类型
且读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的

因此代码通常应该在使用一个流之前检查它是否处于良好状态。确定一个流对象的状态的最简单的方法是将它当做一个条件来使用

流可以设置状态,调用函数记住或者设置状态

流使用>>或者<<符号来确定方向

eof函数,如果流正常结束,返回true

拷贝构造函数:
类对象赋值的时候会调用拷贝构造函数

重载运算符

什么是直接初始化,直接调用构造函数初始化,叫直接初始化
拷贝初始化,调用拷贝构造函数初始化

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值