
C++
文章平均质量分 84
春泥面包
这个作者很懒,什么都没留下…
展开
-
C++中虚析构函数的作用
原文:http://blog.youkuaiyun.com/starlee/article/details/619827 我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtua转载 2015-10-23 15:26:39 · 456 阅读 · 0 评论 -
Mix C and C++
https://isocpp.org/wiki/faq/mixing-c-and-cpp 关于如何使用C和C++进行混合编程,上面的引文总结的非常全面。问题的关键在与C++编译器编译出来的函数的名称与C编译器所使用的规则是不同的。如果想让使用C++编译器(如g++)编译出的函数能够让C编译器认识,我们需要告诉C++编译器函数名要使用C编译器的规则,方法是使用extern "c"。通常为了是一个头文原创 2016-12-20 16:36:19 · 968 阅读 · 0 评论 -
C++ 拷贝控制:对象移动
左值和右值 一般而言,一个左值表达式表示的是一个对象的身份,而一个右值表达式表示的是对象的值。首先要知道什么是左值、什么是右值。C++ Primer 5th P121 4.1.1有说明。TODO:补充右值引用 新标准中的一个最主要的特性是可以移动而非拷贝对象的能力。在某些情况下,对象拷贝后就立即被销毁了,此时使用移动而非拷贝将大幅提升性能。P470 13.6上面是引入“移动”的原因。“某原创 2016-10-09 13:36:58 · 3119 阅读 · 0 评论 -
C++ Primer in one article
总结一些C++问题问题列表:http://1angxi.cn/?p=175为什么empty class的大小不是0? http://stackoverflow.com/questions/2362097/why-is-the-size-of-an-empty-class-in-c-not-zero C++中的虚函数表: http://blog.youkuaiyun.com/haoel/article/det原创 2016-03-25 14:27:58 · 1828 阅读 · 0 评论 -
How To Use Google Logging Library (glog)
From: http://rpg.ifi.uzh.ch/docs/glog.html TODO: 翻译翻译 2017-05-22 10:51:01 · 528 阅读 · 0 评论 -
How To Use gflags (formerly Google Commandline Flags)
From: https://gflags.github.io/gflags/TODO: 翻译翻译 2017-05-22 11:01:23 · 425 阅读 · 0 评论 -
C++ istream_iterator
From: https://stackoverflow.com/questions/16727125/how-does-stdcopy-work-with-stream-iteratorsFirst, note that in this case, there’s no real need to use std::copy at all. You can just initialize the v翻译 2017-06-21 15:05:01 · 1065 阅读 · 0 评论 -
C++ non type template parameters
模板中的非类型参数 可以在模板中定义非类型参数(non type parameter), 一个非类型参数表示一个值而非一个类型. (C++ Primer 5th P580)那么非类型参数可以是哪些呢? 书中的例子是以int为非类型参数, 那么string呢?用户自定义类型呢?带着这样的疑问找到了下面的回答: https://stackoverflow.com/questions/55478翻译 2017-06-22 09:42:16 · 1160 阅读 · 0 评论 -
名字查找与继承
直到了上面得到名字查找过程,再来理解隐藏(hide)和覆盖(override)就容易多了。此外还要记得:名字查找先于参数检查。来看一个例子。#include <iostream>class Base { public: virtual int fcn() { std::cout << "int Base::fcn()" << std::endl; }};c原创 2017-06-16 15:43:54 · 619 阅读 · 0 评论 -
C++ : Memory model in c++11
https://stackoverflow.com/questions/6319146/c11-introduced-a-standardized-memory-model-what-does-it-mean-and-how-is-it-gFirst, you have to learn to think like a Language Lawyer.The C++ specification d转载 2017-10-20 09:40:57 · 524 阅读 · 0 评论 -
C++ : Object Model
原文: http://spockwangs.github.io/2011/01/31/cpp-object-model.html参考: http://lifegoo.pluskid.org/upload/doc/object_models/C++%20Object%20Model.pdfThe g++ implementation of C++ Object ModelJa转载 2017-10-20 09:45:25 · 542 阅读 · 0 评论 -
Google : Protocol Buffers
https://developers.google.com/protocol-buffers/docs/cpptutorial0. 简介内容来自引文。用于将数据序列化、反序列化。比如,想将一个struct存储到文件中(序列化),以后还会读取回来(反序列化)。通常的做法主要有:最原始的做法是将内存中的数据以二进制形式原封不动的存到文件中,然后在需要的时候直接读回到内存就可以了原创 2016-10-26 12:57:02 · 796 阅读 · 0 评论 -
C++ string类的简单实现 (2)
参考 https://coolshell.cn/articles/10478.html#jtss-tsina分析如果一个class带有指针类型的数据成员,那么请思考默认的copy ctor和copy assign是否合适。如果你需要深拷贝那么默认的行为就不合适了(默认为浅拷贝)。并且如果你的编译器支持c++11,可以考虑是否可以利用右值引用来提高效率,这时需要实现move cto...原创 2018-05-25 14:50:40 · 614 阅读 · 0 评论 -
static_cast and dynamic_cast
原文: www.cnblogs.com/bastard/archive/2011/12/14/2288117.html一 C语言中存在着两种类型转换:隐式转换和显式转换隐式转换:不同数据类型之间赋值和运算,函数调用传递参数……编译器完成char ch;int i = ch;显示转换:在类型前增加 :(Type)变量 对变量进行的转换。用户显式增转载 2015-07-23 14:21:37 · 611 阅读 · 0 评论 -
C++ string类的简单实现(1)
成员变量: data_ : 指向一个’\0’结尾的字符串 length_: 占用空间长度(包含’\0’)实现了:默认构造函数、拷贝构造函数、拷贝赋值操作符、析构函数。 没有实现:移动拷贝构造函数、移动赋值操作符。对于拷贝赋值操作符注意: 1. 处理自赋值:先new一个副本,再delete自己 2. 返回引用#include <sys/types.h>#include <string.h>原创 2016-07-21 10:54:42 · 954 阅读 · 0 评论 -
c++中虚函数是怎么实现的
简单的说,如果一个类中有虚函数,那么编译器会给该类的实例创建一个虚函数表(vtable),并添加一个指针vptr指向vtable。详细请看下面的讲解原文:http://www.cnblogs.com/repository/archive/2010/12/12/1903843.html虚函数是很多编程语言中一个特性,比如c#,java,当然在c++语言中也有。这三转载 2015-10-23 15:30:25 · 1400 阅读 · 0 评论 -
c++: pointer VS reference
http://stackoverflow.com/questions/57483/what-are-the-differences-between-a-pointer-variable-and-a-reference-variable-inhttps://www.dgp.toronto.edu/~patrick/csc418/wi2004/notes/PointersVsRef.pdf转载 2015-11-09 14:45:03 · 630 阅读 · 0 评论 -
c++: 重载 覆盖 隐藏
原文:http://man.chinaunix.net/develop/c&c++/c/c.htm#_Toc5206340428.2 成员函数的重载、覆盖与隐藏 成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。 8.2.1 重载与覆盖 成员函数被重载的特征:(1)相同的范围(在同一个类中转载 2015-11-16 20:48:29 · 471 阅读 · 0 评论 -
C++函数重定义、重载、重写
原文: http://www.cnblogs.com/BeyondTechnology/archive/2010/09/20/1831441.htmlC++函数重定义、重载、重写1. 重写 (override): 父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。 1) 被重写的函数不能是 static 的。必须是 virtual 的转载 2014-09-18 17:35:39 · 759 阅读 · 0 评论 -
C++ 友元 friend
原文: http://www.cnblogs.com/CBDoctor/archive/2012/02/04/2337733.html 友元是指:采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分(注意友元函数不是类的一部分),但又需要频繁地访问转载 2014-09-18 17:28:58 · 699 阅读 · 0 评论 -
C++之多态性与虚函数
原文:http://www.cnblogs.com/CaiNiaoZJ/archive/2011/08/11/2134673.html转载 2014-09-18 17:23:21 · 827 阅读 · 0 评论 -
C++中const用法总结
原文: http://www.cnblogs.com/lichkingct/archive/2009/04/21/1440848.html1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量转载 2013-10-15 16:33:20 · 756 阅读 · 0 评论 -
C++中指针和引用的区别
原文: http://www.cnblogs.com/kingln/articles/1129114.html从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个转载 2013-09-26 14:45:03 · 872 阅读 · 0 评论 -
C/C++中Static的作用详述
原文: http://www.dz3w.com/mcu/clanguage/050409//C272.htmC/C++中Static的作用详述在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要转载 2013-01-23 19:54:34 · 650 阅读 · 0 评论 -
mixing-c-and-cpp
https://isocpp.org/wiki/faq/mixing-c-and-cpp#overview-mixing-langs转载 2015-12-03 16:36:20 · 470 阅读 · 0 评论 -
STL in one article
参考书籍:《标准模板库自修教程与参考手册 STL进行C++编程》模板参数明确说明下面的函数模板将字符数组转换为任意的容器。因为只在返回值中用了模板参数,C++规定这种情况必须在函数调用时必须明确说明模板参数类型,否则会编译出错。template <typename Container>Container make(const char s[]){ return Container(&s原创 2016-07-06 13:55:52 · 516 阅读 · 0 评论 -
Effective C++ 总结
Rule 3: 尽可能的使用constconst可以作用于作用于内的对象、函数参数、函数返回值、成员函数体可以使用const进行函数重载对“成员函数为const”的两种观点:bitwise constness 和 logical constnessbitwise constness: const成员函数绝不改变任何成员变量(static除外)时才可以说时const。C++对“常量性”的定义就原创 2015-10-29 10:20:19 · 594 阅读 · 0 评论 -
enable_shared_from_this 分析
http://monkeycn.iteye.com/blog/1135901 http://vyloy.iteye.com/blog/1808547原创 2018-05-29 16:55:33 · 547 阅读 · 0 评论