C++
OneSea
8年Android/Linux系统开发经验,专注Display&Graphics领域。
展开
-
__stdcalll——调用约定说明符
参考资料《MFC Windows应用》原创 2014-07-04 09:55:14 · 2151 阅读 · 0 评论 -
编译器变量__func__, __FILE__...
参考资料[1]C++ Primer(中文版)第5版原创 2015-08-03 18:17:34 · 1046 阅读 · 0 评论 -
成员函数模板
1 背景2 代码templateclass SmartPtr { public: // constructor template explicit SmartPtr( Y* t ){} // copy constructor template SmartPtr( SmartPtr const &other ){ }};class Top{};c原创 2015-07-25 09:02:10 · 643 阅读 · 0 评论 -
C++关键字explicit
在Qt中,经常会在构造函数的声明前看到关键字explicit,例如:explicit FilterThread(QObject *parent = 0); 那么,explicit的作用是什么呢?参考资料[1]C++中的explicit关键字原创 2015-06-03 10:10:37 · 912 阅读 · 0 评论 -
C数据类型字节对齐
1 __attribute__((packed))#include struct A { uint16_t cmd; uint32_t size;} __attribute__ ((packed));int main(void){ printf("sizeof(A) = %d\n", sizeof(A));} 如上所示,添加了__attribut原创 2015-08-28 15:39:26 · 966 阅读 · 0 评论 -
C++中多态的实现
参考资料[1]指出,多态的绑定可以分为运行时多态和编译时多态,下面是两种多态性的特点。不管是编译时多态还是运行时多态,都是通过函数重载来实现的,两者主要到的区别在于,所重载的函数是否为虚函数。1 编译时多态 对于非虚的成员函数来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。2 运行时多态 运行时的多态性就是指直到系统运行时才根据实际情况决定实现何种原创 2015-10-15 09:28:39 · 602 阅读 · 0 评论 -
Qt C++命名空间
参考资料[1]C++基础积累(1)using namespace potter 自定义命名空间和使用原创 2015-12-11 22:29:01 · 7596 阅读 · 0 评论 -
Qt中C++运算符重载
参考资料[1]c++运算符重载总结原创 2015-06-22 20:47:32 · 7748 阅读 · 1 评论 -
const在C/C++的作用
待续。。。原创 2013-09-16 20:02:13 · 992 阅读 · 0 评论 -
不能将“this”指针从“const XXX”转为“XXX &”
1 版本说明 Win10(64bit)、Qt5.4.22 错误说明3 解决方法 出现上述错误的原因是在const成员函数中调用了非const成员函数,因此只要将所调用的函数都改成const函数原创 2016-02-23 23:37:27 · 8358 阅读 · 0 评论 -
LNK1104:无法打开文件"\.obj"
1 开发环境Win10(64)Qt5.6.0(64)MSVC 2015(64)2 错误参考资料[1]LINK : fatal error LNK1104: 无法打开文件“.obj”,新人求助![2]无法打开输入文件 .obj原创 2016-03-09 09:46:31 · 18869 阅读 · 1 评论 -
C++模板特化
关于模板特化,我首先是在《Effective C++》这本书中接触到的(p.107,p.108,p.209),刚开始的时候对其概念还比较陌生,因此对其做一个简单的总结。参考资料[1]Effective C++中文版(第三版)[2]C++模版的特化[3]c++学习(模板特化和偏特化)原创 2015-07-23 14:05:34 · 613 阅读 · 0 评论 -
tr1::function
参考资料[1]P173有它的用例。参考资料[1]Effective C++,中文版(第三版)[2]std::tr1::function原创 2015-07-21 15:33:21 · 670 阅读 · 0 评论 -
C++关键字mutable
const成员函数一般不可以修改类成员变量,但是硬要修改怎么办呢?参考资料[1]指出,只需要将成员变量使用mutable关键字说明即可,这回是的改变量可以在任意成员函数中被修改(当然包括const成员函数)。参考资料[1] Effective C++ 中文版(第三版)P22~P23原创 2015-07-16 16:37:38 · 534 阅读 · 0 评论 -
从成员对象指针获取父对象指针
1 问题阐述 有两个类,它们的关系如下(A是B的成员):class A { ...};class B { ... A *a; ....};void main(void) { B *b = new B;} 那么,在只知a的情况下,如何获得b呢?(这种需要发生在b的成员函数中,要使用到a的数据成员是,就需要知道a)。 参考资料原创 2015-06-03 09:29:54 · 2385 阅读 · 0 评论 -
C++11中变量初始化方法汇总
1 背景 参考资料[1]提到,在C++语言中,初始化与赋值并不是同一个概念,它是一个异常复杂的问题。因此有必要专门对这个问题进行总结。2参考资料[1]C++ Primer中文版(第5版)原创 2015-08-11 17:14:13 · 13972 阅读 · 1 评论 -
C++11中的类类型转换
1 隐式类类型转换参考资料[1]C++ Primer中文版(第5版)原创 2015-08-25 10:52:53 · 765 阅读 · 0 评论 -
C++关键字static
1 静态成员变量2 静态成员函数参考资料[1]static静态成员(变量与函数)原创 2015-07-17 17:09:15 · 498 阅读 · 0 评论 -
C++智能指针
C++编程中,使用智能指针可以有效避免内存泄漏。下面将对C++中的各种智能指针做一个简单的总结。1 std::auto_ptr 参考资料[4]P63指出,auto_ptr是个”类指针(pointer-like)对象“,也就是所谓的”智能指针“,其析构函数自动对其所指对象调用delete。使用示例:#include // auto_ptr所需头文件int main(in原创 2015-07-18 15:14:03 · 655 阅读 · 0 评论 -
C/C++编程风格
1 条件与循环语句1.1 if else if (condiction) {...} else {...}说明: if与()之间有一个空格; ()与{在同一行,并且它们之间有一个空格; else与}在同一行,并且与左右两边的{}分别有一个空格。1.2 whilewhile (condiction) {...}1.3 forfor (in原创 2015-08-05 09:37:08 · 989 阅读 · 0 评论 -
C++转型操作符:const_cast, static_cast, dynamic_cast和reinterpret_cast
参考资料[1]Effective C++ 中文版(第三版)P24~25,P116[2]const_cast_百度百科原创 2015-07-16 17:00:48 · 666 阅读 · 0 评论 -
C语言字符串中使用宏替换
1 背景 在定义一个字符串时,希望有一部分内容可以使用宏替换。当尝试使用如下方式来实现时,发现并不能达到目的。#define XXX programmerchar str[] = “I like XXX”; 参考资料[1]提出了使用#符号的方法,经过尝试发现编译未能通过!那么,这个看似简单的需求,到底应该如何去实现呢?参考资料[1]字符串中替换宏[2]C语言宏定义中的原创 2015-07-21 11:04:04 · 7827 阅读 · 2 评论 -
C++语句简洁化
1 * 与++结合 参考资料[1]P132提到将根据后置递增运算符的特点,将*与++相结合的方法:auto pbeg = v.begin();while(pbeg != v.end() && *pbeg > 0) cout 参考资料[1]C++ Primer中文版(第5版)原创 2015-08-01 10:38:58 · 835 阅读 · 0 评论 -
Ubuntu14.04编译安装boost
参考资料[1]原创 2016-11-23 14:53:01 · 1926 阅读 · 0 评论