zl程序教程

C/C++_虚函数

  • c++回调函数详解及实现(lambda)

    c++回调函数详解及实现(lambda)

    回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++语言中还可以使用仿函数或匿名函数。回调函数的使用可以大大提升编程的效率,这使得它在现代编程中被非常多地使用。 回调的好处用于解耦,可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的被调用函数。简而言之,回调函数就是允许用户把需要调用的函数的指针作为参数传递给

    日期 2023-06-12 10:48:40     
  • C++学习——memset函数详解

    C++学习——memset函数详解

    大家好,又见面了,我是你们的朋友全栈君。memset是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。头文件 <string.h>或 < cstringh >函数介绍include <string.h>每种类型的变量都有各自的初始化方法,memset() 函数可以说是初始化内存的“万能函数

    日期 2023-06-12 10:48:40     
  • Dev-c++中将头文件和头文件函数分离,编译主函数跳出undefined reference to 的问题解决

    Dev-c++中将头文件和头文件函数分离,编译主函数跳出undefined reference to 的问题解决

    更新时间:2022.5.13 8:00 在学习谭浩强c++第三版面向对象编程,第二章习题四中: 需要实现三个文件分离,主函数(.cpp),类的声明(头文件),对成员函数定义文件(.cpp) 单在使用Dev-C++实现中,发现在编译一直出现undefined reference to set_value,也就是提示我们定义的这个函数未定义,但是我们定义了,所以应该是我们没有无法链接到函数实现

    日期 2023-06-12 10:48:40     
  • C++ 练气期之解构函数

    C++ 练气期之解构函数

    1. 函数一个C++程序中,总是需要包含若干个函数,可以说函数是C++程序的基础组成元件,是程序中的头等公民。如果要理解程序中使用函数的具体意义,则需要了解语言发展过程中致力要解决的 2 问题:一是完善语言的内置功能库(API),让开发者不为通用功能所干扰。另就是通过特定的代码组织方案提升代码的可伸缩性、可维护性、可复用性以及安全性。随着项目规模的增大,分离代码,重构整体结构尤为重要。函数的出现,

    日期 2023-06-12 10:48:40     
  • EasyC++30,函数指针从进阶到放弃……

    EasyC++30,函数指针从进阶到放弃……

    作者 | 梁唐大家好,我是梁唐。这是EasyC++系列的第30篇,继续来聊聊函数指针。函数指针进阶简单的函数指针比较简单,但对于复杂的情况则显得有些恐怖。下面我们来看下C++ primer当中提供的一些例子:const double* f1(const double ar[], int n); const double* f2(const double [], int); const double

    日期 2023-06-12 10:48:40     
  • EasyC++49,函数和语言链接性

    EasyC++49,函数和语言链接性

    作者 | 梁唐大家好,我是梁唐。这是EasyC++系列的第49篇,函数和语言链接性。const关于const的含义和使用我们之前已经讨论过了,但const限定符对于默认存储类型是有影响的。在默认情况下,全局变量的链接性是外部的,也就是说所有文件均可使用。但const全局变量的链接性是内部的,也就是说只能在本文件当中使用。全局const定义就好像使用了static说明符一样。这个设定看起来有些令人费

    日期 2023-06-12 10:48:40     
  • EasyC++59,默认构造函数

    EasyC++59,默认构造函数

    作者 | 梁唐大家好,我是梁唐。这是EasyC++系列的第59篇,默认构造函数。默认构造函数上一篇文章当中介绍的是显式构造函数,也就是说我们需要传入值来对类的成员变量进行初始化。但也有一些情况,我们可能并不需要传入值进行初始化,或者有一些其他的逻辑。针对这种情况,C++提供了默认构造函数的功能。所谓默认构造函数,也就是在没有提供显式的初始值时,用来创建对象的构造函数。默认构造函数非常简单,还是以之

    日期 2023-06-12 10:48:40     
  • EasyC++69,转换函数

    EasyC++69,转换函数

    作者 | 梁唐大家好,我是梁唐。这是EasyC++系列的第69篇,来聊聊转换函数。转换函数上一篇我们聊了类的转换,C++允许通过构造函数进行隐式类型转换。那我们自然而然产生一个问题:这样的转换可逆吗?我们有没有办法把一个类的对象再转换回基本变量类型呢?比如:Time t(14); int x = t; 复制这是可以的,不过不是使用构造函数。构造函数只能用于从某种类型到类类型的转换,要进行相反的转换

    日期 2023-06-12 10:48:40     
  • EasyC++79,虚函数注意事项

    EasyC++79,虚函数注意事项

    作者 | 梁唐大家好,我是梁唐。这是EasyC++系列的第79篇,虚函数注意事项。虚函数注意事项在之前的文章当中,我们已经讨论了虚函数的使用方法,也对它的原理进行了简单的介绍。这里简单做一个总结:在基类的方法声明中使用关键字virtual可以声明虚函数加上了virtual关键字的函数在基类以及派生类和派生类再派生出来的类中都是虚的在调用虚函数时,程序将会根据对象的类型执行对应的方法而非引用或指针的

    日期 2023-06-12 10:48:40     
  • C++实现字符串分割函数split()「建议收藏」

    C++实现字符串分割函数split()「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。目录使用strtok()完成分割使用strsep()完成分割使用strtok_r()完成分割实现字符串分割前言最近遇到了一个字符串分割的问题,在C++的标准库里面没有字符分割函数split()。我想这个问题今后可能还会再遇见,所以使用C/C++中的字符串分割方法完成相应的功能。需求:对一个字符串进行分割,然后将分割后的数据存起来,想用的时候像用数组那样拿就行

    日期 2023-06-12 10:48:40     
  • C++中string append函数的使用与字符串拼接「建议收藏」

    C++中string append函数的使用与字符串拼接「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 1. append函数常用的函数原型: basic_string &append( const basic_string &str ); basic_string &append( const char *str ); basic_string &append( const basic_string &

    日期 2023-06-12 10:48:40     
  • strstr函数头文件_c++ strstr函数的实现[通俗易懂]

    strstr函数头文件_c++ strstr函数的实现[通俗易懂]

    大家好,又见面了,我是你们的朋友全栈君。函数说明:包含文件:string.h函数名: strstr函数原型:extern char *strstr(char *str1, char *str2);功能:从字符串str1中查找是否有字符串str2, 如果有,从str1中的str2位置起,返回str1的指针,如果没有,返回null。返回值:返回该位置的指针,如找不到,返回空指针。#include “s

    日期 2023-06-12 10:48:40     
  • C++虚函数详解

    C++虚函数详解

    大家好,又见面了,我是你们的朋友全栈君。C++虚函数详解前言C++的特性使得我们可以使用函数继承的方法快速实现开发,而为了满足多态与泛型编程这一性质,C++允许用户使用虚函数 (virtual function) 来完成 运行时决议 这一操作,这与一般的 编译时决定 有着本质的区别。虚函数表实现原理虚函数的实现是由两个部分组成的,虚函数指针与虚函数表。虚函数指针虚函数指针 (virtual fun

    日期 2023-06-12 10:48:40     
  • C++栈的基本操作及原理和STL函数

    C++栈的基本操作及原理和STL函数

    文章目录 目录 文章目录 前言 一、栈是什么? 二、使用步骤 1.栈的结构定义 2.构造一个栈 3.入栈  4.出栈 5.返回栈顶空间   三、STL 总结 前言后进先出的线性序列称为栈提示:以下是本篇文章正文内容,下面案例可供参考一、栈是什么?栈是限定仅在尾部进行插入和删除操作的线性表二、使用步骤1.栈的结构定义 代码如下(示例): 动态分配 //顺序栈 //动态分配

    日期 2023-06-12 10:48:40     
  • 【c++的一些常用数组函数】

    【c++的一些常用数组函数】

    目录前言一、全排列函数(重要)1.对函数的介绍:2.例题3.思路及代码解析二、反转函数1.对函数的介绍2.代码3.执行结果:三、填充替换函数1.函数的介绍2.代码演示总结前言前两天再刷蓝桥杯题库的时候做到一道有思路但是因为用循环太复杂导致没写出来,后来看别人的题解的时候才知道原来要使用“全排列函数”,而我当时对这个函数没有一点影响了,所以我觉得我应该复习一些c++函数了,今天总结的是一些较为常见的

    日期 2023-06-12 10:48:40     
  • C++中构造函数的作用「建议收藏」

    C++中构造函数的作用「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。构造函数用于解决类中的对象初始化的问题 构造函数是一类特殊的函数,与其他的成员函数不同的是构造函数构造函数不需要用户来调用它,而是建立对象的时候自动的执行#include <iostream> //#include "student.h" //#include <string> //#include <c

    日期 2023-06-12 10:48:40     
  • C++构造函数的作用_c++什么是构造函数

    C++构造函数的作用_c++什么是构造函数

    大家好,又见面了,我是你们的朋友全栈君。PS:写在前面就是构造函数的作用可以这样理解,如果没有构造函数就是类里边只是声明了成员变量,成员函数,还有最后的对象,这样你在对该对象进行初始化赋值时就比较麻烦就得先调用成员函数对成员变量赋值,成员变量进而作用到对象上,之后有了构造函数,在构建构造函数时直接可以带参数对对象进行初始化,相当于省略了步骤,可以这样简单的理解。PS:但是构造函数远远不止只有赋值这

    日期 2023-06-12 10:48:40     
  • C++级联函数调用

    C++级联函数调用

    级联函数调用就是类似于下面这种调用函数的方式:t.setHour(18).setMinute(30).setSecond(22);复制它可以把原来需要三行的语句压缩到一行,而且很具有可读性要实现这样的调用,就必须在类的成员函数之中,返回一个*this指针,这也是实现级联函数调用的关键。所以,代码实现就像下面这样子:Time.h#pragma once class Time { public: e

    日期 2023-06-12 10:48:40     
  • c++ 常量表达式_c语言所有函数

    c++ 常量表达式_c语言所有函数

    大家好,又见面了,我是你们的朋友全栈君。 constexpr修饰函数。普通函数/类成员函数。1.函数必须要有返回值,并且return返回的表达式必须是常量表达式。代码如下:#include <iostream> using namespace std; //error 不是常量表达式函数 constexpr void func1() { int a = 200;

    日期 2023-06-12 10:48:40     
  • 【C++408考研必备】模板函数、内存分配、标准模板

    【C++408考研必备】模板函数、内存分配、标准模板

    二维数组char【7】【5】 char 合法形参: a【】【5】char(*c)【5】; c= new char【n】【5】;char **xSTLaccumulate用于计算init和[first , last)内部所有元素的总和。需要提供一个init,表示当[first,last)为空的区间仍然可以获取一个明确定义的数值,如果想获得[first,last)内所有数值的总和,应将init设

    日期 2023-06-12 10:48:40     
  • C++ 中的getline()函数用法详解

    C++ 中的getline()函数用法详解

    遇到了要输入一行字符串的操作,我想除了fgets()的方法(fgets()用法链接),getline()也是可以的,但是我对getline的操作不熟悉,便查阅了很多资料,发现都说的很模糊,借这个机会我想彻底理清楚getline的用法; 网上有说getline有两种用法的,我在这总结一下,一、getline()用的比较多的用法1)istream& getline (is

    日期 2023-06-12 10:48:40     
  • C/C++ Qt 信号自定义槽函数

    C/C++ Qt 信号自定义槽函数

    Qt中实现自定义信号与槽函数,信号用于发送并触发槽函数,槽函数则是具体的功能实现,如下我们以老师学生为例子简单学习一下信号与槽函数的使用方法。使用无参数信号与槽: 首先定义一个teacher类,该类中用于发送一个信号,其次student类,定义用于接收该信号的槽函数,最后在widget中使用emit触发信号,当老师说下课时,学生请客吃饭。teacher.h 中只需要定义信号。定义一个 void h

    日期 2023-06-12 10:48:40     
  • C++内联函数

    C++内联函数

    一、内联函数概念在c++中,预定义宏的概念是用内联函数来实现的,而内联函数本身也是一个真正的函数。 内联函数具有普通函数的所有行为。唯一不同之处在于内联函数会在适当的地方像预定义宏 一样展开,所以不需要函数调用的开销。因此应该不使用宏,使用内联函数。 在普通函数(非成员函数)函数前面加上inline关键字使之成为内联函数。但是必须注意必须 函数体和声明结合在一起,否则编译器将它作为普通函数来对待。

    日期 2023-06-12 10:48:40     
  • C++ Boost 函数与回调应用

    C++ Boost 函数与回调应用

    #include <iostream> #include <string> #include <boost\bind.hpp> using namespace std; using namespace boost; int func(int x, int y) { return x + y; } struct struct_func { int fun

    日期 2023-06-12 10:48:40     
  • C/C++ 反汇编:关于函数调用约定

    C/C++ 反汇编:关于函数调用约定

    函数是任何一门高级语言中必须要存在的,使用函数式编程可以让程序可读性更高,充分发挥了模块化设计思想的精髓,今天我将带大家一起来探索函数的实现机理,探索编译器到底是如何对函数这个关键字进行实现的,并使用汇编语言模拟实现函数编程中的参数传递调用规范等。说到函数我们必须要提起调用约定这个名词,而调用约定离不开栈的支持,栈在内存中是一块特殊的存储空间,遵循先进后出原则,使用push与pop指令对栈空间执行

    日期 2023-06-12 10:48:40     
  • C/C++开发基础——函数指针&回调函数

    C/C++开发基础——函数指针&回调函数

    本章主要内容:一,函数指针 1.函数指针的概念 2.函数指针的初始化 3.函数指针调用函数 4.函数指针的类型别名二,回调函数 1.回调函数的概念 2.回调函数的代码样例 3.使用回调函数的原因三,参考阅读一,函数指针1.函数指针的概念与数组类似,函数在内存中也有地址,函数在内存中的地址是其机器语言代码的开始位置,而函数指针则存储函数的内存地址作为变量。函

    日期 2023-06-12 10:48:40     
  • C++基础——C++面向对象之重载与多态基础总结(函数重载、运算符重载、多态的使用)

    C++基础——C++面向对象之重载与多态基础总结(函数重载、运算符重载、多态的使用)

    原文链接:https://winter.blog.csdn.net/article/details/129397401目录0 引言1 重载1.1 函数重载1.2 运算符重载2 多态3 总结0 引言        上一次博文讲解了C++的类和对象,以及继承的特征,本次博文总结下C++面向对象的另外两个关键特征——重载与多态。1 重载        C++ 允许在同一作用域中的某个函数和运算符指定多个

    日期 2023-06-12 10:48:40     
  • 【C++ 语言】面向对象 ( 成员函数 | 常量函数 | 友元函数 | 友元类 | 单例类 )

    【C++ 语言】面向对象 ( 成员函数 | 常量函数 | 友元函数 | 友元类 | 单例类 )

    文章目录成员函数常量函数友元函数new 创建对象友元类单例类成员函数 此处继续上一篇博客继续向后讲解C++面向对象 类成员方法 , 除了定义构造方法与析构方法之外 , 还可以定义普通的成员方法 , 如设置 int age 变量的方法 , 这里声明一个成员方法 , 传入参数 int age , 给成员变量 int age 赋值 ;使用共有函数访问私有成员变量 , 在类中私有的成员变量时不允许从外部

    日期 2023-06-12 10:48:40     
  • 【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )

    【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )

    文章目录函数模板类模板代码示例函数模板1. 模板编程 : 类似于 Java 中的泛型编程 ;① 函数模板 : 对应着 Java 中的泛型方法 ;② 类模板 : 对应 Java 中的泛型类 ;2. Java 中的泛型方法 :void <T> fun( T t ){ }复制3. C++ 中的模板方法 ://函数模板 , 对应 Java 泛型方法 // 其中 typename 也可以写成 c

    日期 2023-06-12 10:48:40     
  • c++面向对象设计(谭浩强)2.3类的成员函数

    c++面向对象设计(谭浩强)2.3类的成员函数

    2.3.1 成员函数与一般函数的区别:它是属于一个类的成员,出现在类体里。成员函数可以访问本类中的任何成员。一般将需要被外界调用的成员函数指定为public,它们是类的对外接口。工具函数2.3.2作用域限定符 ::一般在类的内部对成员函数作声明,然后在类外定义。(良好习惯)2.3.3为了减少时间开销,在类体中定义的成员函数中不包括循环等控制结构,c++系统会自动地对她们作为内置函数来处理(inli

    日期 2023-06-12 10:48:40     
  • C++函数的高级特性详解编程语言

    C++函数的高级特性详解编程语言

    问题:在C++中建议用const、enum、inline替换#define,为什么? 答: 1)宏的优点: A、增强代码的复用性; B、提高代码的性能。 2)宏的缺点: A、不可调试; B、不检查参数类型; C、容易出错; D、无法操作类的私有数据成员。 1、const修饰成员函数 在成员函数后面加const,const修饰this指针所指向的对象,也就是保证调用这个

    日期 2023-06-12 10:48:40