摘要: 思考 构造函数是一个特殊的函数 是否可以直接调用? 是否可以在构造函数中调用构造函数? 直接调用构造函数的行为是什么? 答案 直接调用构造函数将产生一个临时对象 临时对象的生命周期只有一条语句的时间 临时对象的作用域只在一条语句中 临时对象是c++中值得警惕的灰色地带 小结 直接调用构造函数将产生一 阅读全文
posted @ 2018-05-22 01:23 sugarwill 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 对于局部对象 当程序执行流到达对象的定义语句时进行构造 对于堆对象 当程序执行流到达new语句时创建对象 使用new创建对象将自动触发构造函数的调用 对于全局对象 对象的构造顺序是不确定的 不同的编译器使用不同的规则确定构造顺序 阅读全文
posted @ 2018-05-22 01:06 sugarwill 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 类成员的初始化 注意事项 成员的初始化顺序与成员的声明顺序相同 成员的初始化顺序与初始化列表中的位置无关 初始化列表先于构造函数的函数体执行 类中的const成员 类中的const成员会被分配空间的 类中的const成员的本质是只读变量 类中的const成员只能在初始化列表中指定初始值 编译器无法直 阅读全文
posted @ 2018-05-22 00:51 sugarwill 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 对象的初始化 从程序设计的角度,对象只是变量,因此: 在栈上创建对象时,成员变量初始为随机值 在堆上创建对象时,成员变量初始为随机值 在静态存储区创建对象时,成员变量初始为0值 小结 每个对象在使用之前都应该初始化 类的构造函数用于对象的初始化 构造函数与类同名并且没有返回值 构造函数在对象定义时自 阅读全文
posted @ 2018-05-20 20:50 sugarwill 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 类的关键字 struct在c语言中已经有了自己的含义,必须继续兼容 在c++中提供了新的关键字class用于类定义 class和struct的用法时完全相同的 class和struct有什么区别? 在用struct定义类时,所有成员的默认访问级别为public 在用class定义类时,所有成员的默认 阅读全文
posted @ 2018-05-20 20:22 sugarwill 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 类通常分为以下两个部分 类的实现细节 类的使用方式 类的封装 当使用类是,不需要关心其实现细节 当创建类时,才需要考虑其内部实现细节 c++中类的封装 成员变量:c++中用于表示类属性的变量 成员函数:c++中用于表示类行为的函数 c++中可以给成员变量和成员函数定义访问级别 public 成员变量 阅读全文
posted @ 2018-05-20 18:54 sugarwill 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 类之间的基本关系 继承 从已存在类细分出来的类和原类之间具有继承关系(is-a) 继承的类(子类)拥有原类(父类)的所有属性和行为 组合 一些类的存在必须依赖于其它的类,这种关系叫组合 组合的类在某一局部上由其它的类组成 小结 类之间可以存在继承关系或组合关系 继承关系中子类拥有父类的的一切属性和行 阅读全文
posted @ 2018-05-20 18:40 sugarwill 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 面向对象基本概念 面向对象的意义在于 将日常生活中习惯的思维方式引入程序设计中 将需求中的概念直观的映射到解决方案中 以模块为中心构建可复用的软件系统 提高软件产品的可维护性和可扩展性 类和对象时面向对象中的两个基本概念 类:指的是一类事物,是一个抽象的概念 对象:指的是属于某个类的具体实体 类是一 阅读全文
posted @ 2018-05-20 18:32 sugarwill 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 关于const的疑问 const什么时候为只读变量?什么时候是常量? const常量的判别准则 只有用字面量初始化的const常量才会进入符号表 使用其它变量初始化的const常量仍然是只读变量 被volatile修饰的const常量不会进入符号表 在编译期间不能直接确定初始值的const标识符,都 阅读全文
posted @ 2018-05-20 18:10 sugarwill 阅读(79) 评论(0) 推荐(0) 编辑
摘要: c方式的强制类型转换 (Type)(Expression) Type(Expression) c方式强制类型转换存在的问题 过于粗暴 任意类型之间都可以进行转换,编译器很难判断其正确性 难于定位 在源码中无法快速定位所有使用强制类型转换的语句 问题: 强制类型转换在实际工程中是很难完全避免的! 如何 阅读全文
posted @ 2018-05-20 15:15 sugarwill 阅读(139) 评论(0) 推荐(0) 编辑