C++解惑整理

来源:互联网 发布:国际劳工组织数据库 编辑:程序博客网 时间:2024/05/29 02:14

有人说学好了C,然后学C++很容易。因为C++是C的超集。并且到处流传着N天精通C++。我是没有那样的智慧了。c++的许多概念很多年了,还不熟悉。面向对象的思想一直难以建立起来。设计模式也不甚了解。c++的学习还得慢慢来。下面整理一些C++的知识。

  1. C++中智能指针的设计和使用
  2. C++中虚函数工作原理和(虚)继承类的内存占用大小计算
  3. 虚函数和纯虚函数的区别
  4. C++中的抽象类以及接口的区别联系
  5. 虚析构函数的意义
  6. 拷贝构造函数的参数可以是非引用类型吗?
  7. 虚继承的意义
  8. const修饰变量
  9. 类初始化,初始化列表,初始化顺序,析构顺序
  10. const修饰函数
  11. 强制类型转化
  12. C++异常机制的实现方式和开销分析
  13. RTTI、虚函数和虚基类的实现方式、开销分析及使用指导
  14. C++编码规范与指导
目前想出了这么多c++的基本问题,慢慢发现不足并积累解答。
语法特性是为语义服务的。c++这么多难以理解的地方应该也是为了实现面向对象而不得已添加的。因此理解上面的问题似乎需要从面向对象入手。
面向对象要求:封装,继承,多态。c++是如何满足这些需求的呢?
封装:
类中包含了数据,以及对数据操作的方法。为了防止外部对数据的直接访问,对数据、函数设定了访问权限。private、protect、public。
继承:
子类直接拥有父类的各种性质。子类中如何限制父类中元素的对外访问属性?通过private、protect、public继承方式。子类可以从多个父类继承。如果发生了菱形继承,那么会发生什么样的状态呢?为了解决该问题引入了虚继承。
多态:

使用虚函数实现多态。

似乎思路还是比较混乱。试着从面向对象实现的原理入手。