星驰编程网

免费编程资源分享平台_编程教程_代码示例_开发技术文章

C++ 知识小结_c++知识结构图


  1. C 语言 typedef 与 #define 比较

从深拷贝到 COW:C++ 字符串复制的内存栈堆变化明细

C++ 字符串复制:栈堆之间的 "数据搬家" 大戏

一、字符串复制就像 "搬家":栈是地址牌,堆是仓库

想象你有一个仓库(堆)里放着一箱子文件(字符串数据),箱子上有个地址牌(栈上的指针)。复制字符串就像搬家:

C++实现委托机制_c# 委托原理

1.引言:

如果你接触过C#,你就会觉得C#中的delegate(委托)十分灵巧,它的用法上和C\C++的函数指针很像,但是却又比C\C++的函数指针更加灵活。并且委托可以一对多,也就是可以注册多个函数,甚至是某个类的非静态成员函数。而实现事件消息机制【1】也十分依赖于委托机制。基于这样的目的,我们试着在C++上封装出这样的一个委托机制。

【1】值得注意的是这里的委托事件模式与Windows的消息循环体系是不同的,通常Windows的消息是放到消息队列中,应用程序进程从队列中得到消息,然后调用消息处理过程来处理消息,这里是真正的消息通知,并且消息处理过程是有固定的函数声明的,不能更改成其他的格式,但是委托事件模式实际上就是一次函数调用,委托事件模式的使用,其好处是在开发中可以像真正的消息事件体系一样来理解整个体系模式,可以做到很好的接口分离。

哈希Hash算法:原理、应用_哈希算法原理及实例

原作者:Linux教程,原文地址:

跨越十年的C++演进:C++11新特性全解析

原作者:Linux教程,原文

C++语言到底是不是C语言的超集之一

C与C++两个关系亲密的编程语言,它们本质上是两中语言,只是C++语言设计时要求尽可能的兼容C语言特性,因此C语言中99%以上的功能都可以使用C++完成。本文探讨那些存在于C语言中的特性,但是在C++中缺失或者表现出不同行为的特性。了解这些特性能让你更深入地理解这两个语言,但是,本文中所罗列的每一项特性都不是建议你在程序开发中采用的技巧,而恰恰相反是应该避免使用的特性。为了你的代码可读性更好,移植性更强,请不要在你的代码中的任何地方秀出这样的特性。了解它是为了更好地避免她。

Effective C++——条款3:尽量用 new 和 delete 而不用 malloc 和 free

前言

malloc 和 free是C语言中的库函数,在C++的应用中使用会产生问题,原因在于它们太简单:他们不知道构造函数和析构函数。


初始化

彻底理解且用对移动语义std:move()

c++中移动语义std:move()定义:

template <class T>
typename remove_reference<T>::type&& move (T&& arg) noexcept {
    return static_cast<remove_reference<decltype(arg)>::type&&>(arg);
}

C++模板 - 3(函数模板返回类型)_c++返回值怎么用

上文还是三天前写的,这两天连着两个晚上都在追踪一个Bug。程序运行、退出都正常,但是打开特定编译开关后,提示Warning: Thread Sanitizer: data race。程序员是不会容忍代码中有任何隐患存在的。说句题外话,写代码都会遇到Bug(Linux的发明者说过,没有人可以一下子就写出没有bug的代码,除了他自己)。估计没有多少人会喜欢Bug。其实我认为排除Bug是一件非常有趣的事,而且可以学到不少的东西,通常Bug都是来自于我们之前某个方面的错误认知,“唉,原来它是这样的,我一直以为是那样的”,不断地修正我们的认知,才能让我们高效地写出优秀的代码。

C++中,常用的强制类型转换函数_c++强制类型转换运算符

在C++中,常用的强制类型转换函数有:1. static_cast用于相似类型间的转换,可以进行上行转换(derived to base)、下行转换(base to derived)、基本类型之间的转换等。

<< 1 2 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言