随笔分类 -  2-C++深度解析教程

该文被密码保护。
posted @ 2018-12-31 10:34 梦心之魂 阅读(10) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-12-31 10:04 梦心之魂 阅读(10) 评论(0) 推荐(0)
摘要:1. 什么是抽象类 (1)面向对象中的抽象概念 思考:抽象图形中,图形的面积如何计算? (2)现实中:需要知道具体的图形类型,才能求面积。 (3)Shape只是一个概念上的类型(抽象图形类型),没有具体对象。 2. 面向对象中的抽象类 (1)可用于表示现实世界中的抽象概念 (2)抽象类是一种只能定义 阅读全文
posted @ 2018-12-30 23:35 梦心之魂 阅读(174) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-12-30 23:25 梦心之魂 阅读(11) 评论(0) 推荐(0)
摘要:1. 回归本质 (1)class是一种特殊的结构体(struct) ①在内存中class依旧可以看作变量的集合 ②class与struct遵循相同的内存对齐规则 ③class中的成员函数与成员变量是分开存放的。即每个对象有独立的成员变量,所有对象共享类中的成员函数。 (2)值得思考的问题:两者相等 阅读全文
posted @ 2018-12-30 22:21 梦心之魂 阅读(193) 评论(0) 推荐(0)
摘要:1. 函数重写回顾 (1)父类中被重写的函数依然会继承给子类 (2)子类中重写的函数将覆盖父类中的函数 (3)通过作用域分辨符(::)可以访问到父类中的函数 Child c; Parent* p = &c; c.Parent::print(); //从父类中继承 c.print(); //在子类中重 阅读全文
posted @ 2018-12-30 16:55 梦心之魂 阅读(166) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-12-30 16:30 梦心之魂 阅读(11) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-12-30 16:09 梦心之魂 阅读(11) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-12-30 15:56 梦心之魂 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-12-30 13:54 梦心之魂 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-12-24 22:21 梦心之魂 阅读(3) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-12-24 22:16 梦心之魂 阅读(5) 评论(0) 推荐(0)
摘要:1. 类型转换函数 (1)C++类中可以定义类型转换函数 (2)类型转换函数用于将类对象转换为其它类型 (3)语法规则: operator Type() //重载类型运算符 { Type ret; //…… return ret; } 【编程实验】类型转换函数初探 42-1.cpp #include 阅读全文
posted @ 2018-12-23 23:49 梦心之魂 阅读(143) 评论(0) 推荐(0)
摘要:1. 再论类型转换 (1)标准数据类型之间会进行隐式的类型安全转换 (2)转换规则: 【实例分析】有趣的隐式类型转换 41-1.cpp #include <iostream> using namespace std; int main() { short s ='a'; unsigned int u 阅读全文
posted @ 2018-12-23 23:43 梦心之魂 阅读(154) 评论(0) 推荐(0)
摘要:1. ++i和i++真的有区别吗? (1)现代编译器会对代码进行优化 对于基础类型,前置++和后置++的汇编代码几乎是一样的,最终效率完全一样。 (2)优化使得最终的二进制程序更加高效 (3)优化后的二进制程序丢失了C/C++的原生语义 (4)不可能从编译后的二进制程序还原C/C++程序 【编程实验 阅读全文
posted @ 2018-12-23 23:36 梦心之魂 阅读(193) 评论(0) 推荐(0)
摘要:1. 逗号操作符(,) (1)逗号表达式用于将多个子表达式连接为一个表达式 (2)逗号表达式的值为最后一个子表达式的值 (3)逗号表达式的前N-1个子表达式可以没有返回值 (4)逗号表达式按照从左向右的顺序计算每个子表达式的值 exp1,exp2,exp3,…,expN; 【实例分析】逗号表达式的示 阅读全文
posted @ 2018-12-23 23:28 梦心之魂 阅读(167) 评论(0) 推荐(0)
摘要:1. 逻辑运算符的原生语义 (1)操作数只有两种值(true和false) (2)逻辑表达式不用完全计算就能确定最终值 (3)最终结果只能是true或false 【编程实验】逻辑表达式 38-1.cpp #include <iostream> using namespace std; int fun 阅读全文
posted @ 2018-12-23 23:24 梦心之魂 阅读(134) 评论(0) 推荐(0)
摘要:1. 永恒的话题:内存泄漏 (1)动态申请堆空间,用完后不归还 (2)C++语言中没有垃圾回收的机制 (3)指针无法控制所指堆空间的生命周期 【编程实验】内存泄漏 37-1.cpp #include <iostream> #include "IntArray.h" using namespace s 阅读全文
posted @ 2018-12-23 23:20 梦心之魂 阅读(402) 评论(0) 推荐(0)
摘要:1. 关于赋值的疑问 (1)疑问 ①编译器为每个类默认重载了赋值操作符 ②默认的赋值操作符仅完成浅拷贝 ③当需要进行深拷贝时必须重载赋值操作符 ④赋值操作符与拷贝构造函数有相同的存在意义 【编程实验】默认赋值操作符重载 36-1.cpp #include <iostream> using names 阅读全文
posted @ 2018-12-23 23:12 梦心之魂 阅读(128) 评论(0) 推荐(0)
摘要:1. 为什么需要函数对象 (1)案例 ①编写一个函数,使函数可以获得斐波那契数列每项的值。 ②每调用一次返回一个值 ③函数可根据需要重复使用 【编程实验】第一个解决方案 35-1.cpp #include <iostream> using namespace std; int fib() { sta 阅读全文
posted @ 2018-12-23 23:06 梦心之魂 阅读(230) 评论(0) 推荐(0)