![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
文章平均质量分 78
QTVLC
这个作者很懒,什么都没留下…
展开
-
c++异常处理总结
c++ 中关于异常处理的总结原创 2022-11-12 15:19:18 · 877 阅读 · 1 评论 -
C++中重载、重写(覆盖)和隐藏的区别
基本概念:重载:是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。示例:class A{public: void test(int i); void test(double i);//overload void test(int i, double j);//overload void test(double i, int j);//overload int test(int i);转载 2021-11-01 14:55:39 · 202 阅读 · 0 评论 -
qtcreator 5.9.8中新建项目,手动添加了Features类,之后有很多error: missing binary operator before token “(“报错
qtcreator 5.9.8中新建项目,手动添加了Features类,之后有很多error: missing binary operator before token "("报错/usr/include/x86_64-linux-gnu/c++/5/bits/os_defines.h:44: error: missing binary operator before token “(”#if __GLIBC_PREREQ(2,15) && defined(_GNU_SOURCE)^原创 2020-11-26 09:20:02 · 6957 阅读 · 2 评论 -
C++中NULL和nullptr的区别
在编写C程序的时候只看到过NULL,而在C++的编程中,我们可以看到NULL和nullptr两种关键字,其实nullptr是C++11版本中新加入的,它的出现是为了解决NULL表示空指针在C++中具有二义性的问题,为了弄明白这个问题,我查找了一些资料,总结如下。一、C程序中的NULL在C语言中,NULL通...转载 2020-05-06 11:33:43 · 1022 阅读 · 0 评论 -
stl中map的四种插入方法总结
方法一:pair例:map<int, string> mp;mp.insert(pair<int,string>(1,“aaaaa”));方法二:make_pair例:map<int, string> mp;mp.insert(make_pair<int,string>(2,“bbbbb”));方法三:value_type例:ma...转载 2020-04-23 13:42:21 · 445 阅读 · 0 评论 -
C/C++ memmove与memcpy的区别及实现
1.与字符串函数strcpy区别:memcpy与memmove都是对内存进行拷贝可以拷贝任何内容,而strcpy仅是对字符串进行操作。memcpy与memmove拷贝多少是通过其第三个参数进行控制而strcpy是当拷贝至'\0'停止。2.函数说明: memcpy函数的功能是从源src所指的...转载 2019-03-20 14:11:51 · 268 阅读 · 0 评论 -
关于函数strtok和strtok_r的使用要点和实现原理
strtok函数的使用是一个老生常谈的问题了。该函数的作用很大,争议也很大。以下的表述可能与一些资料有区别或者说与你原来的认识有差异,因此,我尽量以实验为证。交代一下实验环境是必要的,winxp+vc6.0,一个极端平民化的实验环境。本文中使用的源代码大部分来自于网络,我稍加修改作为例证。当然,本人水平有限,有不妥之处在所难免,各位见谅的同时不妨多做实验,以实验为证。strto...转载 2019-03-06 19:16:00 · 1574 阅读 · 0 评论 -
strlen(const char * str) string::size() string::length() 字符串长度返回值注意事项
size_t strlen(const char *string);size_t size() const;size_t length() const;size_t 实际上是unsigned int, 不能拿来直接用。http://www.cplusplus.com/reference/string/string/size/比如string str1 = "12345678901112...原创 2019-03-05 19:48:45 · 1203 阅读 · 0 评论 -
虚函数与多继承
&amp;amp;nbsp; 2009年7月30日 kunlun 发表评论 阅读评论 链接: C++虚函数探索笔记(1)——虚函数的简单示例分析 C++虚函数探索笔记(2)——虚函数与多继承 C++虚函数探索笔记(3)——延伸思考:虚函数应用的一些其他情形 关注问题: 虚函数的作用 虚函数的实现原理 虚函数表在对象布局里的位置 虚函数的类的sizeof 纯虚函数的作用 多级继承时的虚函数表...转载 2019-02-26 16:49:07 · 951 阅读 · 0 评论 -
memcpy用法总结
原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include &lt;string.h&gt;功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。举例: // memcpy.c #incl...转载 2019-02-27 18:55:06 · 21660 阅读 · 0 评论 -
C++字符串切割的两种方法
字符串切割的使用频率还是挺高的,string本身没有提供切割的方法,但可以使用stl提供的封装进行实现或者通过c函数strtok()函数实现。1、通过stl实现涉及到string类的两个函数find和substr: 1、find函数 原型:size_t find ( const string&amp;amp; str, size_t pos = 0 ) const; 功能:查找子字符串第一次出现...转载 2019-03-06 19:49:35 · 4176 阅读 · 0 评论 -
[C++] explicit 关键字
C++ 只有explicit关键字,没有implicit关键字。编译器允许解析函数的参数时,对参数作隐式转换。也就是说,编译器能够使用带单个参数的构造函数,将函数参数转换为正确的类型。带有单个形参的构造函数定义了一种由实参类型到类类型的隐式转换。下面的类带有可用于隐式转换的构造函数:class Foo{public: Foo (int foo) : m_foo (foo) { }...转载 2019-03-08 09:03:05 · 193 阅读 · 0 评论 -
C++ 类模板与模板类详解
在C++的Template中很多地方都用到了typename与class这两个关键字,有时候这两者可以替换,那么这两个关键字是否完全一样呢? 事实上class用于定义类,在模板引入c++后,最初定义模板的方法为:template<class T>,这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字...转载 2019-03-08 09:29:32 · 1797 阅读 · 0 评论 -
基类成员函数能否调用基类的纯虚函数?纯虚函数,多态
理解虚函数( virtual function )的几个关键点:理解早绑定(early binding)、晚绑定(late binding)。所谓early binding:On compile time,就能明确一个函数调用是对哪个对象的哪个成员函数进行的,即编译时就晓得了确定的函数地址;所谓late binding:On compile time,对函数(虚函数)的调用被搞成了:pObj-...转载 2019-04-26 09:43:15 · 3144 阅读 · 0 评论 -
C++静态成员函数访问非静态成员的几种方法
大家都知道C++中类的成员函数默认都提供了this指针,在非静态成员函数中当你调用函数的时候,编译器都会“自动”帮你把这个this指针加到函数形参里去。当然在C++灵活性下面,类还具备了静态成员和静态函数,即class A{public: static void test() { m_staticA += 1; }private: stat...转载 2019-04-23 09:11:39 · 6880 阅读 · 4 评论 -
c语言局部变量 静态局部变量 全局变量与静态全局变量
基本概念: 作用域:起作用的区域,也就是可以工作的范围。代码块:所谓代码块,就是用{}括起来的一段代码。数据段:数据段存的是数,像全局变量就是存在数据段的代码段:存的是程序代码,一般是只读的。栈(stack):先进后出。C语言中局部变量就分配在栈中。 局部变量 普通的局部变量定义的时候直接定义或者在前面加上autovoid func1(void){&nbs...转载 2019-05-23 19:33:01 · 4226 阅读 · 1 评论 -
C++抽象编程——如何修改map中的值
思路的由来刚刚在写一个程序,要用到将map中的值给改变,但是那是书本上提供的put()函数(我记得java好像也提供这一类的函数吧),我们的C++并不具有这样的功能,所以我便去搜索了一下大家的建议,发现确实是没有这个函数,要实现还是得自己来。我看的最多的还是说:先...转载 2019-05-31 10:55:40 · 3183 阅读 · 1 评论 -
类内const数据成员或引用或其他类类型成员(该类没有默认构造函数)初始化的方法
在《C++Primer中文版(第五版)电子工业出版社》p259中提到,“如果成员是const、引用,或者属于某种未提供默认构造函数的类类型,我们必须通过构造函数初始值列表为这些成员提供初值”又想到,在类内声明时就可以对数据成员进行初始化(根据p64C++11新标准规定,可以为数据成员提供一个类内初始值。创建对象时,类内初始值将用于初始化数据成员。没有初始值的成员将被默认初始化(p40))。...原创 2018-08-27 19:44:18 · 851 阅读 · 0 评论 -
C语言结构体初始化的四种方法
定义struct InitMember{ int first; double second; char* third; float four;};方法一:定义时赋值struct InitMember test = {-10,3.141590,"method one",0.25};需要注意对应的...转载 2019-01-23 18:42:13 · 2041 阅读 · 0 评论 -
c++:(各种)构造函数的调用方式
c++的类中有5种值得注意的基本的函数:无参构造函数有参构造函数拷贝构造函数赋值函数析构函数关于析构函数,需要注意的点在上一篇博客里面 c++: 是否会自动delete? 也提到过了,在这里暂时不多说。这篇博客主要记录这3个构造函数、1个赋值函数的调用方式,希望大家学习之后,不但知道如何调用,还可以根据一句话来判断到底调用了几次构造函数。可以通过一个例子来说明,假如我现在有一个A...转载 2018-11-05 20:46:29 · 476 阅读 · 0 评论 -
一个类的对象作为另一个类的数据成员时如何构造函数
一个类的对象作为另一个类的数据成员。 一个类中的数据成员除了可以是int, char, float等这些基本的数据类型外,还可以是某一个类的一个对象。用子对象创建新类。 &n...转载 2018-08-25 13:01:33 · 8034 阅读 · 2 评论 -
C++ 静态成员的类内初始化
原文地址:https://www.cnblogs.com/wanyuanchun/p/4041080.html一般来说,关于C++类静态成员的初始化,并不会让人感到难以理解,但是提到C++ 静态成员的”类内初始化”那就容易迷糊了。我们来看如下代码: 1 //example.h 2 #include<iostream> 3 #include<vector> 4 ...转载 2018-08-24 13:35:01 · 1909 阅读 · 2 评论 -
C++ 一个类调用另一个类的成员变量/成员函数
原文地址:https://blog.csdn.net/chengzhongxuyou/article/details/50328825有时候,两个类之间并没有继承的关系,但是其中一个类需要引用另一个类中的成员变量或者成员函数。怎样办到呢?假设已经新建了两个类A、B。class A{public: A(); ~A();public: int nAdd; int add();...转载 2018-08-24 13:27:52 · 14068 阅读 · 0 评论 -
C++ 类中的static成员的初始化和特点
原文地址:https://blog.csdn.net/men_wen/article/details/64443040 C++ 类中的static成员的初始化和特点在C++的类中有些成员变量初始化和一般数据类型的成员变量有所不同。以下测试编译环境为:➜ g++ -vUsing built-in specs.COLLECT_GCC=g++Ta...转载 2018-08-28 08:42:00 · 1004 阅读 · 0 评论 -
multiple definition of `xxxx`问题解决及其原理
原文地址:https://blog.csdn.net/mantis_1984/article/details/53571758 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mantis_1984/art...转载 2018-08-23 14:28:44 · 2147 阅读 · 0 评论 -
fopen函数失败原因分析以及分析原因的方法
原文地址:https://blog.csdn.net/andy_93/article/details/78865000 概述:最近在分析一个偶现的问题,偶现概率特别低,问题还在分析中。把分析的知识做个总结,后面再继续补充。问题描述:代码在调用Lua的require函数时发生异常,通过查...转载 2018-08-20 16:46:46 · 2911 阅读 · 0 评论 -
c++访问私有(private)成员变量的常用方法
原文地址:https://blog.csdn.net/lsh_2013/article/details/45485409类的对象不能直接访问类声明的私有成员变量,否则破坏了信息隐藏的目的。在C++中,为了防止某些数据成员或成员函数从外部被直接访问,可以将它们声明为private,这样编译器会阻止任何来自外部非友元的直接访问。私有成员变量的常用访问方法如下:(1)通过公共函数为私有成员...转载 2018-08-27 10:16:40 · 38285 阅读 · 3 评论 -
enum与typedef enum的用法
原文地址:https://www.cnblogs.com/wgang171412/p/5382291.html enum与typedef enum enum与typedef enum的用法在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可...转载 2018-08-17 15:27:21 · 2305 阅读 · 1 评论 -
一个类的对象做为另一个类的数据成员
原文地址:https://blog.csdn.net/pxl20171799/article/details/80103425 1、在c++中,当把一个类的对象作为另一个新类的数据成员时,定义格式为:class X { 类名1 成员名1; ...转载 2018-08-25 13:05:14 · 2085 阅读 · 0 评论 -
C语言之可重入函数 && 不可重入函数
可重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据是否会 出错。不可重入函数在实时系统设计中被视为不...转载 2018-09-05 20:25:56 · 724 阅读 · 0 评论 -
关于C++ const 的全面总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。 Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示: No. 作用 ...转载 2018-10-11 14:30:28 · 1655 阅读 · 0 评论 -
C/C++——strcpy函数的 几种 实现 和 详细 解析
C/C++——strcpy函数的实现 和解析题目: 已知strcpy函数的原型是: char * strcpy(ch转载 2018-10-11 10:45:49 · 4270 阅读 · 0 评论 -
C++中避免内存泄露常见的解决方式
常见内存泄露及解决方式-选自ood启发录new/delete, array new/arrray delete匹配case 1:在类的构造函数与析构函数中没有匹配地调用 new/delete! 解决方法:检查构造函数,在出现new的情况下,按相反的顺序在析构函数中匹配加入delete!这里有两个意思: 1〉new...转载 2018-10-11 09:39:45 · 554 阅读 · 0 评论 -
cache 和 buffer 的区别
Buffer常见的是这个:(来源:train stop buffer bumper)对,就是铁道端头那个巨大的弹簧一类的东西。作用是万一车没停住,撞弹簧上减速慢,危险小一些。叫缓冲。Cache常见的是这个:(来源:维基百科)没错,就是一种保管箱。看到右边那个被锈掉的Food Cache没?这是部署在森林里的存应急物资的保管箱。功能是把你需要用的东西放在更容易拿到的地方。虽...转载 2018-09-11 09:59:21 · 140 阅读 · 0 评论 -
Explicit Constructors(显式构造函数)
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于St...转载 2018-09-14 09:13:21 · 197 阅读 · 0 评论 -
指针函数和函数指针的区别
1、指针函数:本质是一个函数。函数返回类型是某一类型的指针 格式: 类型标识符 *函数名(参数表) int *f(x,y); ?12345floa转载 2018-09-10 21:09:52 · 244 阅读 · 0 评论 -
指针数组和数组指针、动态数组
double* nums = new double[n]这是动态定义一个大小为n的数组,然后把数组第一个元素的地址返还给指针nums。用这种方法定义的数组占用的内存是在堆里。普通的数组定义不允许提供未知长度,也就是说n必须是个常量,在程序运算中的来的n是不能用的,所以你无法用普通的静态方法来定义任意大小的数组,也就是数组的大小永远是一样的。动态的方法不一样,因为内存分配不一样,这种方法允许你动态...转载 2018-09-07 09:47:13 · 3086 阅读 · 0 评论 -
类内定义指向类自己的静态指针成员的用途
//线程控制类class ThreadControl {public: static ThreadControl * GetInstance(); virtual ~ThreadControl();protected: static ThreadControl* thread_control_;//指向类本身的静态类成员 explicit ThreadControl();...原创 2018-09-17 08:35:25 · 2129 阅读 · 0 评论 -
extern “C”的作用详解
原文章地址:https://www.cnblogs.com/carsonzhu/p/5272271.html extern “C”的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern “C”后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;...转载 2018-08-17 13:33:24 · 357 阅读 · 0 评论