C++
文章平均质量分 92
kerongw
这个作者很懒,什么都没留下…
展开
-
多态与虚函数
title: 多态与虚函数date: 2020-09-14 19:59:42tags: c++categories: c++多态指一个实体具有多种形态,是OOP的一个重要特性多态分为静态多态和动态多态。静态多态:函数地址早绑定,编译阶段确定函数地址。函数重载和运算符重载都属于静态多态。动态多态:函数地址晚绑定,运行阶段确定函数地址。使用派生类和虚函数实现动态多态。1、多态入门下面看一个例子#include <iostream>using namespace s.原创 2021-07-04 16:27:24 · 215 阅读 · 1 评论 -
C++虚继承
title: 虚继承date: 2020-09-14 20:26:37tags: c++categories: c++虚继承是由多继承和多重继承引发的一些问题。先说明虚继承和虚函数是两个不同的概念。下面看一个例子:1、菱形继承两个派生类继承同一个基类,又有某个类同时继承者两个派生类,这种继承被称为菱形继承或者钻石继承。典型菱形继承示例菱形继承问题:假设动物类中有个属性m_age。羊继承了动物的数据,驼同样继承了动物的数据,当草羊驼使用数据时,就会产生二义性。羊驼继承自动物的.原创 2021-07-04 16:23:39 · 547 阅读 · 2 评论 -
C++派生与继承
title: C++派生与继承date: 2020-09-08 21:06:14tags: c++categories: c++继承是C++面向对象三大特性之一,继承和派生是一个概念,只是站在了不同的角度。继承是子类继承父类的特性,派生则是父类将特性派生给子类。1、继承方式继承的语法:class 子类 :继承方式 父类继承方式一共有三种:公共继承保护继承私有继承下表汇总了不同属性的成员使用不同的继承方式后子类的属性{% raw %} 继.原创 2021-07-04 16:15:23 · 169 阅读 · 2 评论 -
静态/const成员函数/变量
title: 静态/const成员函数/变量date: 2020-09-06 20:41:45tags: c++categories: c++对象的内存中包含了成员变量,不同的对象占用不同的内存,这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响。可是有时我们希望在多个对象之间共享数据,对象A改变了某数据对象B可以检测到。此时使用静态成员变量就可以实现。1、静态成员变量静态成员就是在成员变量前加上关键字static,称为静态成员变量所有对象共享同一份数据在编译阶段分配.原创 2021-07-04 16:13:21 · 572 阅读 · 0 评论 -
友元/内联函数
title: 友元/内联函数date: 2020-09-01 19:36:01tags: c++categories: c++1、友元在程序里,类中有些私有属性(private)除了本类的成员访问它,也想让类外特殊的一些函数或者类进行访问,这就需要用到友元的技术。借助友元(friend),可以使得其他类中的成员函数以及全局范围内的函数访问当前类的 private 成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个.原创 2021-07-04 16:12:15 · 355 阅读 · 2 评论 -
析构/构造/拷贝构造函数
title: 析构/构造/拷贝构造函数date: 2020-08-24 19:29:09tags: c++categories: c++在C++中对象的初始化和清理是两个非常重要的安全问题,一个对象或者变量没有初始状态,对其使用后果是未知的,同理使用完一个对象或者变量,没有及时清理,也会造成一定的安全问题。在C++中利用了构造函数和析构函数解决了上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。1、构造函数构造函数它的名字和类名相同,没有返回值,不需要用户显式调用(用户也不.原创 2021-07-04 16:11:15 · 191 阅读 · 2 评论 -
C++智能指针
文章目录一、简介二、简易版的自己实现的智能指针三、C++智能指针分类1、使用智能指针的注意点①、显示的指定一、简介C++智能指针解决用户在堆区申请的内存空间忘记释放而造成内存泄漏的问题。C++将普通的指针封装为一个栈对象。当栈对象的生存周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄漏。二、简易版的自己实现的智能指针#include <iostream>using namespace std;/*方便测试的类*/class Person{public: Perso原创 2021-01-10 14:57:51 · 170 阅读 · 0 评论 -
C++异常
throw 表达式;转载 2020-12-06 15:28:37 · 269 阅读 · 0 评论 -
C++四种类型转化
1、static_cast2、const_cast3、dynamic_cast3.11、static_caststatic_case:静态转型(向上转型)。用于以下类型转换原有类型的自动类型转换,如short转int,int转double,向上转型等 void指针和具体类型指针的转换,如void *转int *,int *转void *,double*转void *等等。但是不能在具体类型指针之间转换,例如int *转double *、Student *转int *等。不同...原创 2020-12-05 19:59:53 · 1374 阅读 · 0 评论 -
Visual Studio 2017下动态链接库的创建与使用及QT调用自己创建的动态链接库
下文所使用的环境为Visual Studio 2017生成和使用动态库的环境为 x86 Debug版本1、DLL库的创建为工程选择路径和名称,然后点击确定完成工程创建后打开是这个样子点开Dll.h和Dll.cpp可以看到里面编译器已经为我们生成了一部分代码。自己要编写函数就放在这个类中,或者模仿这个类也可以写自己的类下面是自己定义了一个函数用来测试// Dll.cpp : 定义 DLL 的导出函数。#include "pch.h"#include "framework.h"#inc原创 2020-11-17 20:16:07 · 1043 阅读 · 1 评论