随笔分类 -  C++

语言
How to implement the pimpl idiom by using unique_ptr
摘要:https://www.fluentcpp.com/2017/09/22/make-pimpl-using-unique_ptr/ 阅读全文

posted @ 2020-05-19 18:23 醉清风JM 阅读(199) 评论(0) 推荐(0)

Objective-C 与 C++ 的异同
摘要:stackflow 上有同学提问"C++ 与 Objective-C 有什么异同?"楼下的提供的两个资料挺不错的. 其一是: Pierre Chatelier 写的 <From C++ to Objective-C version 2.1 en> 下载链接:http://pierre.chachat 阅读全文

posted @ 2014-08-22 09:47 醉清风JM 阅读(465) 评论(0) 推荐(0)

c++-深拷贝
摘要:1 //DeepCopy.cpp 2 #include 3 using namespace std; 4 5 template 6 class ObjectCell { 7 public: 8 explicit ObjectCell(object initValue ... 阅读全文

posted @ 2014-07-19 17:43 醉清风JM 阅读(197) 评论(0) 推荐(0)

C++-new操作符
摘要:1,new操作符实际上包含三部分:operator new分配内存和调用构造函数初始化刚刚分配的内存,类型转换刚刚的指针。string* ps = new string("lalalala");相当于void* memory = operator new(sizeof(string));call s... 阅读全文

posted @ 2014-06-29 11:16 醉清风JM 阅读(611) 评论(0) 推荐(0)

C++-前缀和后缀
摘要:1,c++规定后缀形式的++操作符有一个int行的参数,被调用时,编译器自动加一个0作为参数给他2,前缀返回一个reference,后缀返回一个const对象///////////////////////////////////////////////////////////////////////... 阅读全文

posted @ 2014-06-29 10:52 醉清风JM 阅读(2718) 评论(0) 推荐(0)

C++-指针和引用的区别
摘要:1,不存在空引用,指针可以为空2,引用更高效,使用前不需要测试是否为空3,指针可以被赋给别的对象,引用则不可以更改总之,在对象有可能什么也不指向或者指向不同的对象的时候应该使用指针。 阅读全文

posted @ 2014-06-29 10:11 醉清风JM 阅读(137) 评论(0) 推荐(0)

C++-多重继承的注意点
摘要:1, 钻石型多重继承如果不想要底部的类有重复的变量,则需要声明为virtual继承 class File{...}; class InputFile: virtual public File{..}; class OutputFile: virtual public File{....}; ... 阅读全文

posted @ 2014-06-28 19:09 醉清风JM 阅读(594) 评论(0) 推荐(0)

C++-继承名称的掩盖
摘要://///////////////////////////////////////////////////////////////////////////////// FileName : effect_item33.h// Version : 0.10// Author... 阅读全文

posted @ 2014-06-28 18:13 醉清风JM 阅读(172) 评论(0) 推荐(0)

C++-dynamic_cast的用处
摘要:主要用来在没有实现文件,只有头文件的情况下,添加派生类的功能,如下例给programmer加奖金。注意:dynamic_cast不能用于没有virtual函数的类/////////////////////////////////////////////////////////////////////... 阅读全文

posted @ 2014-06-28 15:16 醉清风JM 阅读(515) 评论(0) 推荐(0)

C++-const_cast, reinterpret_cast, static_cast的用法
摘要://///////////////////////////////////////////////////////////////////////////////// FileName : cast_item27.cpp// Version : 0.10// Author... 阅读全文

posted @ 2014-06-28 15:12 醉清风JM 阅读(254) 评论(0) 推荐(0)

C++-高效的swap
摘要:原始版本:templatevoid swap(T& a, T& b){ T tmp(a); a = b; b = tmp;}此版本不重视效率,当交换的两个对象比较大时,需要更高效的交换,因此应该提供1)public swap成员函数,让它高效的置换两个对象,并提供nono-memb... 阅读全文

posted @ 2014-06-28 15:01 醉清风JM 阅读(581) 评论(0) 推荐(0)

C++-bool的值
摘要://///////////////////////////////////////////////////////////////////////////////// FileName : bool_value.cc// Version : 0.10 created ... 阅读全文

posted @ 2014-06-28 11:06 醉清风JM 阅读(364) 评论(0) 推荐(0)

C++-Effective C++ Items
摘要:Item2:尽量以const,enum,inline替换#define原因:1, #define ASPECT_RATIO 1.63 编译错误时产生魔数,应以const double Aspect_Ratio = 1.63替换 2, #define不能提供作用域,如某个类的常量 ... 阅读全文

posted @ 2014-06-28 09:20 醉清风JM 阅读(560) 评论(0) 推荐(0)

C++-static的用法
摘要:static成员变量 为什么要有静态成员变量:1)不进入全局名字空间。2)实现信息隐藏 要点: 除了整型的const 静态成员变量可以在类体内初始化,其它值都需要在类体外的实现文件定义static函数 为什么要有静态成员变量:主要是用来访问/修改静态成员变量 要点:1)静态成员函数在类内的声... 阅读全文

posted @ 2014-06-27 14:01 醉清风JM 阅读(181) 评论(0) 推荐(0)

C++-标准输入输出
摘要:1,cout 1) 用来向标准输出打印。 2)如果参数是char*类型,则直接输出字符串。如果想要输出地址,则需要强制转换: (const_cast(pstr));2,cin 1) 将标准输入读入变量,如果输入与变量声明类型不一致,则cin为false,可以用if判断,变量值不确定。 do... 阅读全文

posted @ 2014-06-25 17:38 醉清风JM 阅读(285) 评论(0) 推荐(0)

C++-什么时候需要在类的构造函数中使用初始化列表
摘要:1,如果基类没有default构造函数,则意味着其不能自己初始化。如果其被派生,派生类的构造函数要负责调用基类的构造函数,并传递给它需要的参数。下例中Base2,如果类成员没有默认构造函数。下例中Elem42,如果类的成员变量中含有const成员变量,如果不使用列表,在构造函数中是不能对其赋值的,会... 阅读全文

posted @ 2014-06-25 09:19 醉清风JM 阅读(855) 评论(0) 推荐(0)

C++string的操作
摘要:1 #include 2 using namespace std; 3 4 5 int main() 6 { 7 //initilization 8 string str("abc.ddd"); 9 const strin... 阅读全文

posted @ 2014-06-22 23:39 醉清风JM 阅读(314) 评论(0) 推荐(0)

C++-类的const成员变量
摘要:当类中用到一些固定值时,希望将其定义为const成员变量,防止被修改。但因为const成员变量因为初始化之后就不能修改,因此只能在构造函数的初始化列表中初始化如果是数组,则没有办法在初始化列表中初始化,必须定义为static,放在类外定义例子://const_array.h#include usin... 阅读全文

posted @ 2014-05-10 12:01 醉清风JM 阅读(1609) 评论(0) 推荐(0)

C++-理解构造函数、析构函数执行顺序
摘要:先初始化序列中的函数调用,如果基类构造函数为非引用传递,则引起参数的拷贝构造再:先类内的成员构造函数(拷贝/默认),再类的构造函数;先基类,再派生类;本文主要说明对象创建时构造函数的执行顺序,对象成员的初始化顺序;对象销毁时析构函数的执行顺序,对象成员的销毁顺序。 “对象的构造从类层次的最根处开始,... 阅读全文

posted @ 2013-11-14 13:16 醉清风JM 阅读(1787) 评论(0) 推荐(0)

C++-const_cast只能用于指针和引用,对象的const到非const可以用static_cast
摘要:Static_cast可以对对象也可以对指针也可以对引用,但是const_cast只可以对指针和引用使用,后者不可以对对象用,如果你要把一个const值转化为非const值只能用隐式执行或通过使用static_cast、C样式转换或函数样式转换执行。比如:constintaa = 10;//int ... 阅读全文

posted @ 2013-11-11 14:05 醉清风JM 阅读(1660) 评论(0) 推荐(0)

导航