![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++基础
JLU-C++
本人目前研二在读,主要工作意向C++岗,不限位置
QQ:3152618907
展开
-
C++之模板
泛型编程泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。函数模板函数模板定义的一般形式template <typename type> ret-type func-name(parameter list){ // 函数的主体}type 是函数所使用的数据类型的占位符名称。这个名称可以在函数定义中使用。具体用法见下面案例#include <iostream>#include <string>using原创 2020-10-19 21:52:34 · 685 阅读 · 0 评论 -
如何解决多重继承
例1#include<iostream> using namespace std;class A{ public: void f();};class B{ public: void f(); void g();};class C : public A,public B{ public: void g(); void h();};int main(){ C c1; c1.f();//具有二义性 c1.g();//无二义性(同名覆盖)原创 2020-10-18 19:44:35 · 425 阅读 · 0 评论 -
C++多态是怎么实现的
C++的多态性:在基类函数前面加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用对应的函数,如果对象类型时派生类,就调用派生类的函数;如果对象类型时基类,就调用基类的函数。参考博客参考参考...原创 2020-10-18 19:41:21 · 357 阅读 · 0 评论 -
C++知识点归纳——补充(二)
内联函数参考博客总会拿内联函数和宏去对比单例模式参考博客友元函数类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。为什么要引入友元函数????在实现类之间数据共享时,可以减少系统开销并提高效率为了使其他类的成员函数直接访问该类的私有变量(允原创 2020-10-15 15:40:44 · 172 阅读 · 0 评论 -
C++知识点归纳——补充(一)
参考博客C++特性C++特性:1、封装:实现代码模块化2、继承:实现代码扩展3、多态:3.1静态多态:函数重载,泛型编程3.2动态多态:虚函数封装封装:类是某个对象的定义,包含了对象动作方式的信息,例如对象的名称、方法、属性和事件封装的类的访问类型:1、public(公有):类中成员可以在类外访问2、private(私有):类中成员只能被**该类**的成员函数访问3、protected(保护):成员只能被**该类**的成员函数或者**派生类**的成员函数访问数据成员通常是原创 2020-10-15 10:59:17 · 282 阅读 · 0 评论 -
C++知识点归纳(五)
转换函数(双向)这里实现的是分数转为double类型(黄色部分为转换函数)这里是讲double类型的4,通过调用蓝色部分的,转换为4/1的分数类型这种情况会导致二义性,因为两种转换方式共存加入了explicit后,double类型的4就不会被转为4/1了,所以报错pointer-like classes(类模拟指针)1、智能指针智能指针其实是一个对象,但智能指针里面肯定是包含着一个真正的指针的!但也同时,指针所能做的事情,智能指针也是要都能做到的这里的两个操作符重载是一原创 2020-10-04 20:01:48 · 268 阅读 · 0 评论 -
C++知识点归纳(四)
组合组合:我(queue类)里面有另外一种东西(deque类),我和另外那个的关系就叫组合。(描述见右上角,注意这里是实心的菱形,如果是空心的则表示为指针类型)从内存的角度解释复合注意上面“…”的位置,表示的是执行的次序委托左边是对外的接口,具体实现在右边(这里的操作和Java很像呀)继承继承语法见上图的黄色行部分C++有三种继承方式,private,public和protected。注意:基类的构造函数一定要是虚函数注:这三种关系都是面向对象的一部分参考...原创 2020-09-28 21:18:09 · 162 阅读 · 0 评论 -
C++知识点归纳(三)
三大函数:拷贝构造,拷贝赋值,析构框框中四个函数分别是:构造函数,拷贝构造,拷贝赋值和析构函数 注意:两个拷贝函数中参数的类型(就是class类型)析构函数:和class名称相同并在前面加一个"~";以这个class做出的对象,当它死亡的时候(离开他的作用域或者其他情况),这个析构函数就会被调用强调:图片中是不改变data的(因为private),所以要加const构造函数和析构函数这里的new就是分配内存(动态创建),上面的第四行的加1就当于加了一个’\0’表示结束动态分配内存(构造函原创 2020-09-27 19:00:05 · 252 阅读 · 0 评论 -
C++知识点归纳(二)
内联函数:函数在class里面定义(侯老师的说法)好处:快,好注意:如果函数过于复杂,即使加了inline,编译器也无法把它识别为inline函数访问级别一般情况,数据和一些内部使用的函数都被定义为private,而想让外界调用的函数则被定义为public由上述结果可以,想要访问私有变量,只能通过调用公有的方法来实现注意:private和public没有严格的摆放顺序构造函数C++中,当创建一个对象时,有一个函数就会自动被调用,即使构造函数。注意:1、构造函数名称和类的名称一定要相原创 2020-09-24 16:21:17 · 385 阅读 · 0 评论 -
C++知识点归纳(一)
基于对象和面向对象的简单理解基于对象:面向的是单一Class的设计class without pointer membersclass with pointer members面向对象:面向的是多重class的设计,Class和Class之间的关联继承复合composition委托delegationC和C++的比较C语言在设计程序的时候,函数根据数据类型(data)创造出真正的数据(variables),由于C语言没有提供某些关键字,所以这些数据一定是全局的,因此各个函数都可以去处理v原创 2020-09-21 16:47:41 · 235 阅读 · 0 评论