C++
文章平均质量分 68
每木昔月
这个作者很懒,什么都没留下…
展开
-
C++ 字符串格式化
使用snprintf格式化字符串使用boost::format格式化字符串使用stringstream格式化字符串具体示例使用snprintf格式化字符串#include <stdio.h>using std::string;// 准备数据string haha("haha");int num = 3;// 准备格式string fmt("test string: %s. test number: %d");char targetString[1024];// .转载 2021-06-03 15:33:41 · 6812 阅读 · 0 评论 -
探究 c++ 虚函数表
转载:https://blog.csdn.net/sinat_21107433/article/details/108552472封装,继承和多态,是C++的三大特性。提到多态,就会提到虚函数virtual;提到虚函数,不得不说虚函数表。我们知道,在一个类Class中,如果有定义虚函数,那么这个类对象所占用的存储空间中,会保存一个指向虚函数表的指针,结果是这个类的大小会增加4,即一个指针的大小。那么这个指针存储在类的什么地方?虚函数表里是如何存放各个虚函数的?在具有继承关系的不同类中,虚函数表中的存储有转载 2021-05-25 16:42:12 · 348 阅读 · 0 评论 -
最简单的c++日志输出
最简单的日志mylog.h#pragma once#include <windows.h>#include <ctime>#include <iostream>#include <fstream>#include <direct.h>using namespace std;static std::mutex _mtx;class Log{public: Log(); ~Log(); static void i原创 2021-05-21 16:10:19 · 1878 阅读 · 0 评论 -
c++ vs 创建dll、lib及其调用调试
一、DLL1. 在vs中先新建项目makeDll,选择dll动态链接库项目;2. 项目创建成功后添加如下文件:dllFun.h#pragma once#include "global.h"//自己另外定义的类namespace myFun { class MAKE_DLL_EXPORT dllFun { public: int calculateIntSum(int a, int b); };}framework.h#pragma once#define WIN3原创 2021-05-20 11:00:36 · 1525 阅读 · 5 评论 -
C++11常用特性的使用经验总结
概述及目录(转载自 http://www.cnblogs.com/feng-sc)C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方面的知识,也得益于很多其他网友的总结。本博客文章是在学习的基础上,加上博主在日常工作中的使用C++11的一些总结、经验和感悟,整理出来,分享给大家,希望对各位读者有帮助,文章中的总结可能存在很多不完整或有错误的地方,也希望读者指出。大家可以根据如下目录跳到自己需要的章节。1、关键字及新语法C转载 2021-05-12 16:09:55 · 163 阅读 · 1 评论 -
C/C++语言字符串操作总结大全(超详细)
链接:https://blog.csdn.net/cbnotes/article/details/50291353#转载 2020-09-17 14:32:28 · 256 阅读 · 0 评论 -
使用memcpy踩出来的坑,值得注意
背景描述:最近在一个qt项目中,数据传输部分多次使用了memcpy,程序编译没有一个警告或报错,但是一运行起来就不稳定了,有时甚至不能运行起来,有时跑起来能传输几条数据,有时又能接收到几十条数据,但最终程序都会异常crashed!!甚是恼火!排除问题找了半天,野指针,数组越界,内存泄露都认真检查了几遍,实在没有找到问题出在哪,最后只能采用最笨的办法,把代码分模块注释掉,逐步锁定问题范围,最后才发...原创 2020-04-20 17:05:39 · 27482 阅读 · 8 评论 -
C++基础学习笔记——对象的定义及引用
1 . 类与对象的关系通常我们把具有同样性质和功能的东西所构成的集合称为类。在C++中,可以把相同内部存储结构和相同操作集的对象看成属于同一类。在C++中,对象是类的实际变量。类与对象间的关系,可以用整型 int 和整型变量 i 之间的关系来类比。类和整型 int 均代表的是一般的概念,而对象和整型变量 i 却是代表 具体的东西。正像定义 int 类型的变量一样,也可以定义类的变量。C++把类...原创 2020-03-04 17:41:49 · 1289 阅读 · 0 评论 -
c++基础学习笔记——成员函数的声明与定义
c++类中主要含有两种成分,即数据成员和成员函数,其中成员函数又称为方法。成员函数的定义通常有两种方式,第一种方式是在类声明中只给出成员函数的原型,而成员函数体在类的外部定义。这种成员函数定义的一般形式是:返回类型 类名::函数名(参数表){// 函数体}例如,坐标点的类point可这样声明:class point{private: int x,y;public: //声...原创 2020-03-03 15:53:29 · 4510 阅读 · 1 评论 -
c++基础学习笔记——c结构体与c++类的区别
1.C结构体结构是 C 语言的一种自定义的数据类型,在结构体中可以含有各种不同类型的数据。例如下面声明了一个复数的结构:# include <iostream.h> # include <math.h>struct complex{ double real; // 复数的实部 double imag; // 复数的虚部 void init ( ...原创 2020-02-28 09:57:40 · 256 阅读 · 0 评论 -
C++基础学习笔记——Const修饰符
const 修饰符在C中,习惯使用 #define来定义常量,例如:#define LIMIT 100 ;C++提供了一种更灵活、更安全的方式来定义常量, 即使用 const 修饰符来定义常量,例如:const int LIMIT = 100;这个常量是类型化的,它有地址,可以用指针指向这个值,但不能修改它。 const 也可以与指针一起使用,它们的组合情况较复杂,可归纳为三种:指向...原创 2020-02-27 09:15:15 · 698 阅读 · 0 评论 -
c++基础学习笔记——构造函数与析构函数概念及执行顺序
构造函数先来看看构造函数与析构函数的一些相关概念。构造函数的作用:为类的对象分配资源空间、初始化。析构函数的作用:回收类的资源空间、清理对象。构造函数名与类名相同,这是由类的唯一性和对象的多样性决定的。c++规定每个类都有构造函数,称为默认构造函数。构造函数负责对象初始化工作,将数据成员初始化;创建对象时,其类的构造函数确保用户在操作之前,系统保证初始化的进行。建立对象,必须有一个有意...原创 2020-02-20 15:40:55 · 581 阅读 · 0 评论 -
C语言实现封装、继承
**1.C语言实现封装**在C语言当中,是不存在封装这一个特性的,我们要实现它,我们可以借助两个方法:1.利用C语言中的头文件,在头文件中进行声明,在C文件中对它进行定义,这样就可以隐藏内部信息,用户只能看到接口和公开的信息,无法知道对象所占内存等。示例代码:头文件:#define _CRT_SECURE_NO_WARNINGS 1//在这里,头文件中给出了声明,用户只能看到公有...转载 2020-02-19 10:15:22 · 1061 阅读 · 0 评论 -
c++基础学习笔记——类和对象(重点)
在这之前,我们先看一下c与c++的区别:c:结构化程序设计 程序=算法+数据结构 (算法优先,数据结构次之) c++:面相对象程序设计oop(Object Oriented Programing)程序=对象+对象+...关键:让每一个对象负责执行一组相关任务。面向对象编程开发范式的特性: ①万物皆对象 ②程序是一组对象彼此之间在发送消息 ③每个对象有自己的内存空间,可以...原创 2020-02-18 10:59:58 · 288 阅读 · 0 评论 -
c++基础学习笔记—函数模板
泛型编程:独立于任何特定类型的方式编写代码。而模板是泛型编程的基础。模板使程序员能够快速建立具有类型安全的类库集合和函数集合,方便了大规模的软件开发。函数模板的一般定义形式:template <类型形式参数表> 返回类型 FunctionName(形式参数表){ //函数定义}其中返回类型可以是基本数据类型,也可以是类类型。如果是类类型,则必须加前缀class。例子:...原创 2020-02-06 10:49:49 · 150 阅读 · 0 评论 -
c++基础学习笔记——内联函数(inline)
函数调用需要建立栈内存环境,进行参数传递,并产生程序执行转移,这些工作都需要时间开销,有些函数使用频率高,但代码却很短,因此c++提供了inline函数,减少函数调用的成本。内联函数的函数体限制:内联函数中,不能含有复杂的结构体控制语句,如switch和while等。如果内联函数有这些语句,则编译将该函数视同普通函数那样将产生函数调用代码。递归函数也不能视为内联函数。inline int ma...原创 2020-01-09 16:18:03 · 304 阅读 · 0 评论 -
c++基础学习笔记——引用
引用和引用参数C语言函数的参数传递:按值传递,若值很大,复制数据将耗时更长,但使用的指针传递效率将会高很多。c++函数参数传递:①按值传递②按引用传递引用:①引用是别名,在声明时就必须初始化,在实际代码中的主要作用是作为函数的形参;②引用作为目标的别名使用,对引用的改动就是对目标的改动;③为了建立引用,先写上目标的类型,再加上引用运算符“&”,然后是引用名字。int te...原创 2020-01-02 20:40:15 · 153 阅读 · 0 评论 -
c++基础学习笔记1—HelloWorld与命名空间
还是先来打印Hello World#include<iostream>using namespace::std; //使用c++标准命名空间int main(int argc, char* argv[]){ cout << "Hello World" << endl; return 0;}c++的注释:与C语言类似①//是c++的注释行标志;...原创 2019-12-31 12:10:35 · 149 阅读 · 0 评论 -
C/C++多态及其实现原理
C/C++多态及其实现原理多态的介绍多态含义为一个事物有多种形态。在C ++程序设计中,多态性是指具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数。一般来说多态分为两种:静态多态:也称为编译时多态,主要包括参数多态,过载多态和强制多态。参数多态:采用参数化模板,通过给出不同的类型参数,使得一个结构有多种类型。如 C++语言中的函数模板和类模板属于参数多态。参数多...转载 2019-12-04 10:49:19 · 314 阅读 · 0 评论