自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序猿视角

用简单的语言,说明复杂的道理 —— 一名程序员的阅读心得和没有头绪的随笔记录。

  • 博客(7)
  • 资源 (10)
  • 收藏
  • 关注

原创 C++ 抽象类造成的内存泄漏

今天检查代码时发现一个因为使用抽象类引起的内存泄漏。相关代码简化如下:class AbstratcClass { //省略其他代码 virtual void do_something() = 0;}class ImpClass: public AbstractClass { //省略其他代码 virtual void do_something();}class AppClas...

2019-08-28 16:15:50 597 1

原创 C++11中的 std::move 右值引用转换实现原理

std::move 到底做了什么工作,把本应该是左值引用的变量 x 硬生生改成了右值引用?

2019-08-18 16:55:24 1302

原创 C++ 左值引用、右值引用、复制构造函数、移动构造函数

C++为保持源代码优雅而不失高效率,提供了不少措施,其中右值引用、移动构造函数是一个非常重要的机制。C++ 不愧编程语言之王,java、C# 等后来者,实际上从她身上吸取了不少精华。看下面代码:1. 一个例子#include <iostream>using namespace std;class A {public: int x; A(int x) : x(x) {...

2019-08-13 15:27:12 1006

原创 C++:多线程内存管理的思考

用 C++ 写多线程算法,如果程序设计过程中完全不用 new、delete、malloc、free 等动态申请、释放内存,理论上讲,变量内存会完全分配在栈上。如果不用全局变量和指针引用,理论上讲,算法可以实现无锁设计。但问题来了,如果算法用 OOP 方法设计,数据能保证是完全分配在栈上吗?

2019-08-07 16:55:33 4831

原创 golang 编译错误:evaluated but not used

执行下述代码: ... N := 234 N << 1 ...显示下述错误信息:N << 1 evaluated but not used原因是,N << 1 这个运算返回一个结果,但是没有赋给一个适当的变量。代码的正确写法是: N = N << 1 or M := N << 1当然,也可以写成下面的形式,但是没...

2019-08-04 10:12:32 11059 1

原创 C++ 的常量引用机制 const T& 与函数式编程

变量的值不允许改变,是函数式编程的重要特点。在这个前提下,函数式编程中只能以传值方式向函数传递参数。因为变量的值不能改变,在函数式编程中,所谓的传值,实际上也是通过传递地址指针实现的。因为函数式编程语言不能修改变量,即使共享数据也不会出现副作用,而且,也保证立刻函数式编程具有较高的执行速度。著名的函数式编程语言 Haskell 的运行速度与 C++ 已经很接近了。C++ 提供了 c...

2019-08-03 11:46:14 874

原创 C++ 面向对象体系(OOP)背后的哲学思想

用 Go 语言写了一些算法,被不伦不类的语法快把我折磨疯了。还是回归到 C++ 写算法吧。我觉得 C++ 的面向对象体系应该是所有语言中最科学的。这里简单列举若干特点,算是一个基本的总结。C++ 引入OOP机制,其根本思路是,要让程序员利用 class 机制自行创建新数据类型。新的数据类型从形式上看,应该与 C++ 内置的 int、double 等数据类型完全一样。例如,浮点数数组求和算法如下...

2019-08-01 18:45:52 552

native-windows-gui-master.zip

native-windows-gui-master.zip

2022-05-19

device-query.rar

提供源代码和makefile文件,在自己机器上编译即可。

2021-03-27

opencv-patch.zip

opencv缺少这几个文件无法编译cuda。

2021-01-23

C++模板与STL库介绍

关于C++模板和STL非常通俗的介绍,入门者必读。

2010-08-04

C++_using_namespace_std_详解

C++_using_namespace_std_详解,很不错!

2010-08-04

最强悍的暴力删除文件程序

如果你的磁盘上又不能删除的文件,这是一款特别方便的工具。

2010-08-04

3DES C++ 源代码

3DES C++ 源代码,可用于 VC++ 和 C++ Builder.

2010-08-04

用ATL建立轻量级的COM对象

ATL——活动模板库(The Active Template Library),其设计旨在让人们用C++方便灵活地开发COM对象。ATL本身相当小巧灵活,这是它最大的优点。用它可以创建轻量级的,自包含的,可复用的二进制代码,不用任何附加的运行时DLLs支持。

2010-08-04

ATL 揭秘之“对象创建”篇

当我们用VC++ ATL 工程创建了一个COM 工程,实现了一个自己的COM 对象,又在另一个程序中CoCreateInstance 这个COM 对象时,不知你是否想过这样的问题:COM 对象是用C++类对象实现的,但是,我们从来没有在自己的代码中创建这些C++类对象——比如, “new”这些对象。那么,实现COM 对象的C++对象是由谁,何时,以及如何创建的呢?

2010-08-04

用ATL 建立轻量级的COM 对象

C++与COM之间若即若离,和平共处,一次又一次在每个对象中用同样简洁的几行代码实现IUnknown。我敢肯定将来C++编译器和链接器会实现C++对象和COM对象之间自然 的无意识的对应和映射,目前这个环境只存在于实验室中,因此它肯定不是一个你我今天可以购买的产品。眼下可得到的最接近这个环境的东西就是活动模板库——ATL。

2010-08-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除