首页
学习
活动
专区
工具
TVP
发布

技术点滴

编程语言,编译技术,操作系统,软件开发,分布式系统,大数据处理等相关知识分享。
专栏作者
46
文章
62312
阅读量
38
订阅数
程序异常分析指南
在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异常的情况。程序崩溃时最常见的就是程序运行终止,报告Segmentation fault (core dumped)错误。而程序卡死一般来源于代码逻辑的缺陷,导致了死循环、死锁等问题。总的来看,常见的程序异常问题一般可以分为非法内存访问和资源访问冲突两大类。
Florian
2018-08-21
3K0
对象的传值与返回
对象的传值与返回 说起函数,就不免要谈谈函数的参数和返回值。一般的,我们习惯把函数看作一个处理的封装(比如黑箱),而参数和返回值一般对应着处理过程的输入和输出。这种情况下,参数和返回值都是值类型的,也就是说,函数和它的调用者的信息交流方式是用过数据的拷贝来完成,即我们习惯上称呼的“值传递”。但是自从引入了“引用”的概念后,函数的传统模型就不再那么“和谐”了。引用的传递可以允许函数和调用者共享数据对象,它们之间的信息交流不再使用信息拷贝的方式,而是使用更有效率的信息共享的方式,引用导致函数的参数并有输入和输出
Florian
2018-02-05
2.4K0
虚函数与虚继承寻踪
虚函数与虚继承寻踪 封装、继承、多态是面向对象语言的三大特性,熟悉C++的人对此应该不会有太多异议。C语言提供的struct,顶多算得上对数据的简单封装,而C++的引入把struct“升级”为class,使得面向对象的概念更加强大。继承机制解决了对象复用的问题,然而多重继承又会产生成员冲突的问题,虚继承在我看来更像是一种“不得已”的解决方案。多态让对象具有了运行时特性,并且它是软件设计复用的本质,虚函数的出现为多态性质提供了实现手段。 如果说C语言的struct相当于对数据成员简单的排列(可能有对齐问题)
Florian
2018-02-05
8360
关于vtordisp知多少?
关于vtordisp知多少? 我相信不少人看到这篇文章,多半是来自于对标题中“vtordisp”的好奇。其实这个关键词也是来源于我最近查看对象模型的时候偶然发现的。我是一个喜欢深究问题根源的人(有点牛角尖吧),所以当我第一次发现vtordisp的时候,我也是很自然的把它输进google查找相关资料,但是结果令我不太满意。不过,即使如此,我还是把与它相关的资料整理如下,并结合自己的理解和大家分享一下,希望能共同学习进步。 首先从产生“vtordisp”问题的那个例子开始。 class Base { publi
Florian
2018-02-05
7640
不要被C++“自动生成”所蒙骗
不要被C++“自动生成”所蒙骗 C++对象可以使用两种方式进行创建:构造函数和复制构造函数。假如我们定义了类A,并使用它创建对象。 A a,b; A c=a; A d(b); 对象a和b使用编译器提供的默认构造函数A::A()创建出来,我们称这种创建方式为对象的定义(包含声明的含义)。对象c和d则是使用已有的对象,通过编译器提供的复制构造函数A::A(const A&)创建,我们称这种创建方式为对象的初始化(包含定义和声明的含义)。 可能不少人会把对象的初始化和对象的赋值混淆,比如。 c=d; 这里把对象d
Florian
2018-02-05
6760
那些陌生的C++关键字
那些陌生的C++关键字 学过程序语言的人相信对关键字并不陌生。偶然间翻起了《C++ Primer》这本书,书中列举了所有C++的关键字。我认真核对了一下,竟然发现有若干个从未使用过的关键字。一时间对一
Florian
2018-02-05
9100
《Effective C++》读书摘要
《Effective C++》读书摘要 最近刚读完侯捷的《Effective C++》,相对来说,这本书的内容比较贴近基础,对于刚掌握C++基础的人会有不少的提高。不过书中还是涉及了不少C++的高级特性,阅读起来需要查阅相关的资料。书中给出了大量的示例和代码来说明具体规则的原理,我按照书中给出的标题将每个条目的关键内容整理如下。一方面是保留一份读书笔记,另一方面也是为了方便日后查阅方便。当然,如果不能从简单摘要的内容回忆起具体信息,到时再查书也不迟。同时也期望大家能从中找到自己没有注意的知识点,有所提高,大
Florian
2018-02-05
1.9K0
从实现装饰者模式中思考C++指针和引用的选择
从实现装饰者模式中思考C++指针和引用的选择 最近在看设计模式的内容,偶然间手痒就写了一个“装饰者”模式的一个实例。该实例来源于风雪涟漪的博客,我对它做了简化。作为一个经典的设计模式,本身并没有太多要
Florian
2018-02-05
1.1K0
单例模式(Singleton)
单例模式(Singleton) 单例模式(Singleton) 意图:保证一个类只有一个实例,并提供一个访问它的全局访问点。 应用:Session或者控件的唯一示例等。 模式结构: 心得: 单例模式应
Florian
2018-02-05
6610
关于如何评价洗牌质量的猜想
关于如何评价洗牌质量的猜想 洗牌算法是卡牌类游戏中必须使用的算法,本质上说洗牌算法的目的是使某个给定的顺序更加的无序,因此出现了很多种洗牌算法。我们不重点讨论如何洗牌,我们将眼光关注于洗出的牌是否达到我们预期的要求,以及如何衡量洗出的牌无序的程度。首先先看一个简单有效的洗牌算法。 一、一个简单的洗牌算法 一个比较容易实现的洗牌算法是这样的,通过随机选出两张牌进行交换,通过多次这样的重复操作,就能达到洗牌的目的。事实证明这种洗牌方式还是比较可行,最重要的是比较简单,代码如下。 //洗牌算法,随机交换数组的两个
Florian
2018-02-05
8050
快速傅里叶变换C++递归算法实现
快速傅里叶变换C++递归算法实现 网上有些算法资料经测试运行结果是错误的,虽然代码的使用的是非递归形式。为了方便验证快速傅里叶变换的准确性,我提供了自己设计的递归算法。 基于时域抽取的“基2”快速傅里叶变换算法代码:     Fouier.h文件: #pragma once #include"Complex.h" class Fouier {     Complex * data; void fft(int start,int step,int len);     Complex W(int k,i
Florian
2018-02-05
2K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档