
c++高级进阶
努力写出大气、优雅、正规、高效率的c++
Qt上位机开发
从事上位机软件商业应用开发6年,精通Qt编程,熟悉C++语言、C语言、TCP/UDP编程、多线程编程
展开
-
c++ 初始化成员列表
在c++中,初始化一般有两种方式,一种在构造函数内通过赋值初始化,一种是通过初始化列表初始化。下面通过对两者进行比较,来分析初始化成员列表和构造函数内赋值的优缺点。一、构造函数内赋值:class Text {public: Text() { std::cout << "I'm Text Construction" << std::endl; } Text(int num):_num(num) { std::cout << "I'm Text原创 2020-12-01 23:05:18 · 424 阅读 · 1 评论 -
c++接口与虚析构函数作用
接口是一种编程思想,定义了一种编程规范,同时可以增强扩展性(多态),在C++中,某些抽象类也称为接口类,声明一个接口类需要满足以下几个条件:1、类中所有的成员函数都是纯虚函数,2、没有定义成员变量。因为接口只负责描述类的行为和功能,不需要实现,而是由它的派生类来实现。至于普通抽象类,只要有一个成员函数被声明为纯虚函数,那它就是抽象类,这是和接口不一样的地方。下面总结一下接口的实现...原创 2019-07-13 10:39:56 · 1494 阅读 · 0 评论 -
c++回调函数
什么是回调函数:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。-此处摘自百度百科个人理解:回调函数其实就是普通的函数,侧重在于,我们需要把函数指针传递给另一个函数(通常...原创 2019-07-18 22:37:44 · 809 阅读 · 0 评论 -
c++多态
最近做项目需要自己搭框架,之前半年都是写业务逻辑代码,很多C++的特性都有点模糊了,现在先复习一下c++的多态。c++实现多态的基础是继承,可通过声明基类指针,指向子类对象后来实现。作为面向对象编程的三大思想之一,多态提高了程序的复用性和可扩展性。c++通过virtual关键字来实现多态,多态意味着在调用成员函数时,会根据调用函数的对象类型来执行不同的函数。Man基类中的say函数未加vi...原创 2019-07-01 00:11:53 · 332 阅读 · 0 评论 -
c++类型转换运算符详解
c++提供了4个类型转换运算符,使得转换过程更加的规范。分别是,static_cast,const_cast,dynamic_cast,reinterpret_cast1、static_cast语法:static_cast <type-name>( expression )static_cast用于类型转换,但运行时没有类型检查来保证转换的安全性。主要有以下几种用途...原创 2020-03-08 15:37:34 · 1088 阅读 · 0 评论 -
c++为什么基类的析构函数需要加上virtual
为什么基类的析构函数需要加上virtual?c++面试基本都会问到的问题,我之前有很多次没答全,主要还是懒,忘记以后,没有手动去敲一下。这里做一个总结,纪念当初面试踩过的一些坑。先看下面这个简单的栗子;基类析构函数没有加virtual时#include <iostream>using namespace std;class A{public: A() {...原创 2020-03-13 00:04:29 · 495 阅读 · 0 评论 -
c++11实现的多线程管理
最近面试被问到c++11的一些特性,有点模糊了,撸个c++11实现的简易线程池玩玩,强化一下记忆。目录threadManage.hthreadManage.cppmain.cppthreadManage.h#pragma once#include <thread>#include <vector>#include <queue>...原创 2020-03-16 02:00:07 · 710 阅读 · 0 评论 -
c++深拷贝与浅拷贝
直接看代码更直观,注释都在代码里#include <iostream>using namespace std;//浅拷贝democlass A{public: ~A() { cout << "A析构函数" << endl; } A() :m_num(0){} void setNum(int num){ m_num = num; } int getNum() { return m_num; }private: int m_原创 2020-07-24 17:32:53 · 214 阅读 · 0 评论 -
c++函数模板与类模板
模板是c++泛型编程的基础,它可以以独立于任何特定类型的方式去编写代码。函数模板先来看一个函数模板的定义和使用template <typename T>T const add(T const &a,T const &b){ return a + b;}int main(){ cout << "add(5,6)=" << add(5, 6) << endl; //输出11 return 0;}声明模板的一般原创 2020-07-17 19:08:44 · 432 阅读 · 1 评论