随笔分类 - c++黑马笔记
摘要:c++类中,成员变量和成员函数分开存储,只有非静态成员才属于类的对象中的,因为静态成员在一个对象之上,相当于总揽全局 如果用sizeof来计算类的大小,函数的大小是不计算在内的,只计算成员变量的 如果空类也有一个字节,为了区分不同的空对象所站的位置。 计算类大小的时候,静态变量同样不计算在内,因为静
阅读全文
摘要:静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员静态成员分为: 静态成员变量所有对象共享同一份数据在编译阶段分配内存类内声明,类外初始化静态成员函数所有对象共享同一个函数静态成员函数只能访问静态成员变量 要注意定义在main( )函数之前的全局对象、静态对象的构造函数在main
阅读全文
摘要:类中成员可以是另一个类对象 构造顺序构造在其中的类对象,在构造自身,析构函数顺序相反,线删除自身,再删除其中的对吸纳风格
阅读全文
摘要:构造函数():属性(值),属性(值),。。。{} 类中初始化函数的简化写法
阅读全文
摘要:浅拷贝,编译器提供的简单的复制拷贝操作 深拷贝,在堆区重新申请空间,进行拷贝 当有指针和堆区存在时浅拷贝可能会造成重复释放问题,这种时候要自己定义深拷贝函数防止出现错误 、/拷贝构造函数 Person(const Person& p) { //如果不利用深拷贝在堆区创建新内存,会导致浅拷贝带来的重复
阅读全文
摘要:person(const person & p) {} 默认情况下,c++编译器至少给一个类添加3个函数1.默认构造函数(无参,函数体为空)2.默认析构函数(无参,函数体为空)3.默认拷贝构造函数,对属性进行值拷贝 构造函数调用规则如下:如果用户定义有参构造函数,c++不在提供默认无参构造,但是会提
阅读全文
摘要:两种分类方式:按参数分为: 有参构造和无参构造按类型分为: 普通构造和拷贝构造(const person &p)三种调用方式:括号法,通过()中的参数确定重载初始化函数调用哪一个,如果是默认构造函数的话不要加(),否则会被看为函数声明。显示法,显示说明变量的值,person p = person(p
阅读全文
摘要:c++类中的构造函数用来初始化对象,在创建对象和赋值是使用 析构函数用来清理对象,在对象销毁前使用 一般会有编译器自动调用,如果有特殊要求可以手动实现 构造函数语法:类名(){}1. 构造函数,没有返回值也不写void2. 函数名称与类名相同3. 构造函数可以有参数,因此可以发生重载4. 程序在调用
阅读全文
摘要:在使用时,一般将成员属性设置为私有,以方便自己控制读写权限,通过public函数来进行
阅读全文
摘要:两者都可以用来定义类,唯一的不同就是默认权限不同 class默认是public,struct是private
阅读全文
摘要:public公共权限 protected 保护权限 private 私有权限 public成员类内可以访问,类外也可以访问 private,类内可以访问,类外不可以访问,在继承时,子类不可访问 protected,类内可以访问,类外不可以访问,在继承时,子类可以访问
阅读全文
摘要:#define和那两个都不一样,它属于宏,是预处理器的一部分。预处理是在编译之前的一道,简单地进行字符串替换。它不按照语言的语法,而是直观自己的语法。你#define里面写的东西会被简单粗暴地塞进去 1、static全局变量 与#define普通全局变量 有什么区别?全局变量(外部变量)的说明之前再
阅读全文
摘要:c++面向对象三大特性,封装,继承,多态 具有相同性质的对象,可以抽象为类 封装:将属性和行为作为一个整体,表示一个对象,并将其加以权限控制 设计类:class 类名 {访问权限:属性/行为} 类可以认为是结构体的一种超进化,相比于结构体有更多的特性
阅读全文
摘要:函数名相同的时候重载,可以提高复用性 主要通过不同类型,个数,顺序的函数参数来进行区分 函数返回值不可以作为重载 引用也可以作为函数重载条件 而当函数中有默认参数时,重载中默认参数也是默认加入的,没有优先级 底层的实现原理是使用重命名技术来区分参数不同的同名函数
阅读全文
摘要:函数默认参数 返回类型 函数名(函数变量 = 默认值){} 默认值可以修改,如果不传入则默认使用默认值,设置为默认值的变量右边必须全部都是默认值 如果函数声明有了默认参数,那么函数的实现就不能有默认参数,主要为了防止二义性 函数站位参数 函数形参列表中可以有站位参数,站位参数也可以有默认参数 返回值
阅读全文
摘要:主要用来修饰形参,防止误操作 const int&ref = 10合法 相当于int temp = 10; const int & ref = temp 单纯的引用是不能引用右值的 一般是在函数参数列表中,const int &a,主要是为了防止对引用的值进行了修改
阅读全文
摘要:c++引用的本质就是一个引用常量 int &ref=a;int * const ref = a,两者等价
阅读全文
摘要:左值指的是既能够出现在等号左边也能出现在等号右边的变量(或表达式),右值指的则是只能出现在等号右边的变量(或表达式) 通常来说有名字的变量就是左值,而由运算操作所产生的中间结果(没有名字)就是右值 对于基础类型,右值是不可被修改的(non-modifiable),也不可被 const, volati
阅读全文
摘要:返回值为值类型时。使用临时对象(temporary object)来保存函数的返回值。函数的返回值用于初始化调用点的一个临时对象,该临时对象就是函数调用的结果。其返回值为右值。不能作为左值。 返回值是引用类型时,其返回值即为return的变量,所以不需要临时对象保存其返回值。所以,对于返回值为引用类
阅读全文
摘要:将引用作为形参也可以直接改变实参 因为引用相当于对再次进行了一个变量名到变量地址的映射,这时使用的形参改变值的时候改变的也是真实实参地址中的值,当函数结束后,局部变量会销毁,但是因为引用生成变量代表的那快地址此时依旧有其他的变量名在占用,所以只会销毁形参的变量名,不会销毁地址中的值
阅读全文

浙公网安备 33010602011771号