本文主要是介绍__C++总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
封装、继承、多态
封装:
也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
继承:
是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
多态:
就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
面向对象五大基本原则
单一职责原则SRP(Single Responsibility Principle)
指一个类的功能要单一。
开放封闭原则OCP(Open-Close Principle)
一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。
里氏替换原则(the Liskov Substitution Principle LSP)
子类应当可以替换父类并出现在父类能够出现的任何地方。
依赖倒置原则(the Dependency Inversion Principle DIP)
具体依赖抽象,上层依赖下层。
接口分离原则(the Interface Segregation Principle ISP)
模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来
迪米特法则
又叫最少知识原则(Least Knowledge Principle 简写LKP),降低耦合
类的访问权限:private、protected、public
undo
类的构造函数、析构函数、赋值函数、拷贝函数
移动构造函数与拷贝构造函数对比
深拷贝与浅拷贝的区别
空类有哪些函数?空类的大小?
内存分区:全局区、堆区、栈区、常量区、代码区
C++与C的区别
struct与class的区别
struct内存对齐
new/delete与malloc/free的区别
内存泄露的情况
sizeof与strlen对比
指针与引用的区别
野指针产生与避免
多态:动态多态、静态多态
虚函数实现动态多态的原理、虚函数与纯虚函数的区别
继承时,父类的析构函数是否为虚函数?构造函数能不能为虚函数?为什么?
静态多态:重写、重载、模板
static关键字:修饰局部变量、全局变量、类中成员变量、类中成员函数
const关键字:修饰变量、指针、类对象、类中成员函数
extern关键字:修饰全局变量
volatile关键字:避免编译器指令优化
四种类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
右值引用
std::move函数
四种智能指针及底层实现:auto_ptr、unique_ptr、shared_ptr、weak_ptr
shared_ptr中的循环引用怎么解决?(weak_ptr)
vector与list比较
vector迭代器失效的情况
map与unordered_map对比
set与unordered_set对比
STL容器空间配置器
这篇关于__C++总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!