首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入 C++

许多面试官会问:你知道吗?你在写回的时候遇到哪些坑?你知道对象生命周期管理吗?为什么这里会崩溃,那里会泄漏? 在设计 C++ 时,你是否想过:同步还是异步?时(弱引用)上下文是否会失效?...本文深入分析 Chromium 的 Bind/Callback 机制,并讨论设计 C++ 时你可能不知道的一些问题。...对编程范式的简单思考(本文主要讨论基于 闭包 的,而不是基于 C 语言函数指针的) 如果你还不清楚 可调用对象 (callable object) 和 接口 (callback interface...,可能会导致 泄漏 如果你已经熟悉了 std::bind/lambda + std::function,那么你在设计 C++ 时,是否考虑过这几个问题: 1....2.3 如何传递(强引用)上下文 C++ 本文分析 Chromium 的 base::Bind + base::Callback 机制,带你领略设计的精妙之处。

9.3K106
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C#委托+详解

    今天写不完,明天会接着写的,,,, 学习C#有一段时间了,不过C#的委托+才这两天才会用,以前只是知道怎么用.前面的一篇文章,函数指针,其实是为这个做铺垫的,说白了委托就相当于C语言中的函数指针,具体说用委托有什么好处...,我也不知道,但是因为你只要学C#那么就一定要会,是委托的一种.多用于线程间....还是用代码一点点的说明吧!....扯了这么多...主要的应用是---如果你在一个线程里操作像文本框,按钮,Label等组件时,会报错...原因--C#它不让这样操作,,,, 看例子 ?...= str; } } } 委托也就这样吧 下面看 窗体不变 ?...提供了几种种方法来让我们在线程里来操作窗体控件---其它高级语言也提供了相应的方法的 看 来也 using System; using System.Collections.Generic;

    3.6K40

    C语言进阶-函数

    目录 前言 函数 型计算器 冒泡排序(模拟qsort库函数) qsort函数原型 compar参数 代码演示  冒泡排序(bubble_sort) ---- 前言 ---- 本文主要讲解 函数的理解...实现计算器 qsort各种功能的使用 冒泡排序各种功能的实现 函数 ---- 定义 函数就是一个通过函数指针调用的函数 如果你把函数的指针(地址)作为参数传递给另一 个函数,...当这个指针被用来调用其所指向的函数时,我们就说这是函数 函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应 示例1: 型计算器...***** 0.exit ********\n"); printf("************************\n"); } void cola(int (*p)(int, int))//函数...\n"); break; } } while (intput); return 0; } 示例2: 冒泡排序(模拟qsort库函数) 首先演示一下qsort函数的使用 qsort

    94620

    剖析C语言函数

    概念: 函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是函数。...函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用,用于对该事件或条件进行响应。...观察这部分冗余的代码,发现这4行除了传递的函数不一样,其余都一致,因此我们可以封装一个函数,用函数指针作为参数,调用回函数实现!...我们只需要将运算法则的函数传入Cal里面,这时,各种运算法则的函数就是函数,Cal函数会在特定的条件去调用这些函数。...解决方式: 运用到我们的自定义比较函数,然后用回函数去调用。

    14610

    简单而言:在一个类(A)的方法(a)中调用另一个类(B)的方法(b),当方法(b)执行完之后就调用类(A)中的方法(c),这就是的过程,是不是很简单?...简单分析可以知道一个类(A)持有另一个类(B)的引用,方法(c)就叫做回函数,画成UML图就如下所示: ? 2....同步 这里模拟一个情景,小狗邀请小猫出去玩,而小猫要午睡,所以小狗要等到小猫睡醒了才一起出去玩,要实现的功能是小猫睡醒了通知小狗 其主要对象有: 接口 实现类 被调用者 2.1 接口...public interface Callback { // 函数 public void callback(); } 2.2 实现类 public class Dog...异步 最重要体现在异步上,在上面的例子中,小狗在等小猫醒来的过程中是被阻塞不能执行其他任务的,所以异步回中小狗在等小猫过程中可以干其他事情,等小猫醒了再去执行出去玩这个任务,提高了执行效率 3.1

    2.6K20

    C语言函数,提升C技巧必备

    第一时间看干货文章 1 一、函数指针 在讲函数之前,我们需要了解函数指针。 我们都知道,C语言的灵魂是指针,我们经常使用整型指针,字符串指针,结构体指针等。...数组的声明方法:int (*fArray[10]) ( int ); 二、函数 1. 什么是函数 我们先来看看百度百科是如何定义函数的: 函数就是一个通过函数指针调用的函数。...结合这幅图和上面对函数的解释,我们可以发现,要实现函数,最关键的一点就是要将函数的指针传递给一个函数(上图中是库函数),然后这个函数就可以通过这个指针来调用回函数了。...注意,函数并不是C语言特有的,几乎任何语言都有函数。在C语言中,我们通过使用函数指针来实现函数。...return 0; } int Callback_3(int c) // /< 函数3 { printf("Hello, this is Callback_3: c = %d ", c

    1.1K10

    ​29 - 函数和地狱

    ,这篇文章我们将深入的探究函数以及它们是如何解决异步编程,还有它们的缺点以及什么是地狱。...函数是被当做参数传递给其它函数的函数,函数可以在被调用的函数内执行一些任务。...函数(geeting)传入参数 name 执行且打印出 "Hello name"。 以上是一个简单的函数的例子,具体来说它是同步。一切都被逐行执行,一个接一个。...随着我们有更好的方法来解决异步操作,函数则变得越来越令人讨厌,其实我们没有必要这样对函数有敌意。...当我们只有 1-2 个异步操作时,函数还是很好用的。 当我们需要处理多余 2 个异步任务链时,函数则显得捉襟见肘,让我们从例子来了解一下。

    4.5K10

    什么是地狱?如何解决地狱问题_地狱

    一、什么是地狱呢? 地狱这个词不陌生吧!对,没错就是那个十八层地狱的地狱,一层一层的地狱。 1、同步API,异步API的区别 这个问题呢,需要从Node.js的API说起,这里就会有人问了?...博主你不是说地狱的问题吗,怎么说到API了,别急,看博主一步一步的解释给你听: 同步API 是从上到下依次执行,前面的代码会阻塞后面的代码执行 请看下面这个代码 这里我写了一个for询还1000次.../demo.txt’,(err,result) =>{}); console.log('文件打印结果') 3、写一个使用异步API,造成的地狱案例 案例需求:依次读取A文件,B文件,C文件 首先需要创建一个...这样一层嵌套一层,是不是有点像地狱的样子!这样的代码也不易去维护。 二、怎么解决地狱呢?...Promise的出现就是解决Node.js异步编程中地狱的问题 基础语法 let promise = new Promise((resolve,reject) =>{ setTimout(()

    3.1K30

    c 语言函数指针之函数

    来源:公众号(c语言与cpp编程) 1 什么是函数? 首先什么是“”呢? 我的理解是:把一段可执行的代码像参数传递那样传给其他代码,而这段代码会在某个时刻被调用执行,这就叫做回。...如果代码立即被执行就称为同步,如果过后再执行,则称之为异步函数就是一个通过函数指针调用的函数。...Library(Callback); ///< 库函数通过函数指针进行 // TODO return 0; } ​似乎只是函数间的调用,和普通函数调用没啥区别。...但仔细看,可以发现两者之间的一个关键的不同:在中,主程序把函数像参数一样传入库函数。 这样一来,只要我们改变传进库函数的参数,就可以实现不同的功能,这样有没有觉得很灵活?...0; } int Callback_3(int c) ///< 函数3 { printf("Hello, this is Callback_3: c = %d ", c);

    1.1K41

    C语言函数指针之函数

    1 什么是函数? 首先什么是“”呢? 我的理解是:把一段可执行的代码像参数传递那样传给其他代码,而这段代码会在某个时刻被调用执行,这就叫做回。...如果代码立即被执行就称为同步,如果过后再执行,则称之为异步函数就是一个通过函数指针调用的函数。...但仔细看,可以发现两者之间的一个关键的不同:在中,主程序把函数像参数一样传入库函数。 这样一来,只要我们改变传进库函数的参数,就可以实现不同的功能,这样有没有觉得很灵活?...0; } int Callback_3(int c) ///< 函数3 { printf("Hello, this is Callback_3: c = %d ", c);...推荐阅读 C/C++函数指针与指针函数 C语言指针详解

    1.7K10

    C函数的介绍-学习笔记

    前言: 本篇文章我们将继续指针相关知识:函数 希望大家在看完后能够有所收获! 函数  定义与概念 函数是一个通过指针调用的函数。...如果把函数指针作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,被调用的函数就是函数,函数不是有该函数的实现方直接调用,而是在特定的时间或条件发生时有另外的一方调用的,用于对该事件或条件进行响应...这里的函数 B 就是函数。 是不是有点难以理解?我们先举个简单的实例来解释一下概念。...函数的作用 1.函数能够提高代码的复用性 calc函数可以被不同的运算函数调用,实现了代码的复用。无论是什么运算,只要符合函数指针的类型要求,都可以作为函数传递给calc进行运算。...2.函数的使用可以使得整个工程中有清晰的代码结构 menu函数负责展示菜单和接收用户输入,switch 语句根据用户输入决定调用哪个运算函数作为

    8410

    浅谈C++函数的实现

    函数其实和普通函数一样,不同的是普通函数是直接在程序中进行调用,函数是通过函数指针将它的地址传递给其它函数,函数执行在其它函数体执行,这个过程就叫做回。...所以,C++函数也并非高大上的技术,它的原理无非就是函数指针或者对象的传递。本文就从函数指针开始对函数进行说明。...+b); } int main() { Ptr pInt = add; cout<<pInt(3,5)<<endl; return 0; } 2 C风格的函数 上面的代码是将一个函数地址赋值给了函数指针...3 C++风格的函数 在C++中,如果函数是类成员函数,需要将回函数定义成为静态。当然也可以使用全局函数,但是这样做就会破坏C++的封装性。...,进而实现的功能。

    2.1K10
    领券