- 博客(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
用ATL建立轻量级的COM对象
2010-08-04
ATL 揭秘之“对象创建”篇
2010-08-04
用ATL 建立轻量级的COM 对象
2010-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人