随笔分类 -  C++

大杂烩。
摘要:#ifndef MYAUTOPTR_H#define MYAUTOPTR_Htemplateclass MyAutoPtr{private: _T* _ptr; public: typedef _T element_type; explicit MyAu... 阅读全文
posted @ 2015-11-10 22:19 WendellYih 阅读(211) 评论(0) 推荐(0) 编辑
摘要:使用 sstream 完成转换, 一次性转换较为容易,但是如果 std::stringstream 对象多次使用就要注意状态的清理, 就会发现,第二次输出的值并不是 12345,而是 1234。 原因是第一次 ss >> integer 执行之后,ss 就被置上了 eof 标志,所以,第二次执行 s 阅读全文
posted @ 2015-06-28 19:05 WendellYih 阅读(1123) 评论(0) 推荐(0) 编辑
摘要:RAII手法是 Resource Acquisition is Initialization 的缩写,意为“资源获取即初始化”,在使用智能指针时也使用,下面是针对互斥量时的实现, 1 #include 2 #include 3 4 using namespace std; 5 6 class... 阅读全文
posted @ 2014-10-16 11:55 WendellYih 阅读(1020) 评论(0) 推荐(0) 编辑
摘要:1 class BitArray 2 { 3 public: 4 enum 5 { 6 bits_per_long = sizeof(unsigned long)*8, 7 }; 8 9 BitArray(): array... 阅读全文
posted @ 2014-10-15 16:14 WendellYih 阅读(1130) 评论(0) 推荐(0) 编辑
摘要:1.c++包含多种编程范式,每种范式遵循不同的准则;2.除了#include和#ifdef之流,其他预处理器别用,多用enum和const;3.函数声明定义多用const; 阅读全文
posted @ 2014-10-11 18:44 WendellYih 阅读(132) 评论(0) 推荐(0) 编辑
摘要:构造函数初始化列表有时是必要的。虽然构造函数分为初始化和计算阶段,使用初始化构造函数列表效率要高一些,这是其一,而且有些情况下必须使用,下面是一例, 1 class Foo 2 { 3 public: 4 Foo(int x, int y): a(x), b(y) {} 5 6 priva... 阅读全文
posted @ 2014-10-10 21:53 WendellYih 阅读(154) 评论(0) 推荐(0) 编辑
摘要:在普通非const成员函数中,this是const指针,而在const成员函数中,this是const对象的const指针。 1 class Foo 2 { 3 Foo& get_self1(void) 4 { 5 return *this; //... 阅读全文
posted @ 2014-10-10 20:11 WendellYih 阅读(242) 评论(0) 推荐(0) 编辑
摘要:1 class Screen;不完全类型只能以有限方式使用。不能定义该类型的对象。不完全类型只能用于定义指向该类型的指针及引用,或者用于声明使用该类型作为形参类型或者返回值类型。只有当类定义已经在前面出现过,数据成员才能被指定为该类型。如果是不完全类型,那么数据成员只能是指向该类类型的指针或引用。所... 阅读全文
posted @ 2014-10-10 19:49 WendellYih 阅读(1442) 评论(0) 推荐(0) 编辑
摘要:定义一个对象没有使用初始化表达式,就像下面的一样Foo f1;Foo f2 = Foo();Foo f2(); // 这个是错的,它声明了一个函数就会调用默认构造函数(不带参数或者形参含有默认值),如果类没有定义构造函数,那么编译器会自动合成一个默认的构造函数。如果类中定义了其他类型的构造函数,那么... 阅读全文
posted @ 2014-10-09 20:50 WendellYih 阅读(147) 评论(0) 推荐(0) 编辑
摘要:重载显然是指的函数形参列表,与返回值没有什么关系,与形参名更没有什么关系!// 返回值不同,形参列表相同,重复声明Record lookup(const Account&);bool lookup(const Account&);// 非引用const和非引用,重复声明bool lookup(Acc... 阅读全文
posted @ 2014-10-09 18:54 WendellYih 阅读(183) 评论(0) 推荐(0) 编辑
摘要:reinterpret_cast 这个转换方式在转换指针类型时比较有用 1 #include 2 3 using namespace std; 4 5 int main(void) 6 { 7 int A = 65; // 'A' 8 char * pA = reinterpr... 阅读全文
posted @ 2014-10-09 18:39 WendellYih 阅读(121) 评论(0) 推荐(0) 编辑
摘要:1 #ifndef ABSTRACTFACTORY_H 2 #define ABSTRACTFACTORY_H 3 4 #include 5 6 class AbstractDisk 7 { 8 public: 9 virtual void play(void) = 0;10 };11 12 class AbstractFactory13 {14 public:15 virtual AbstractDisk* create(void) = 0;16 };17 18 class DiskDVD: public AbstractDisk19 {20 public:21 ... 阅读全文
posted @ 2013-11-04 22:08 WendellYih 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1 #ifndef SIMPLE_FACTORY_H 2 #define SIMPLE_FACTORY_H 3 4 #include 5 6 class Product 7 { 8 public: 9 virtual void play(void) = 0; // 没有定义的函数记得声明为纯虚函数10 };11 12 class DVD: public Product13 {14 public:15 void play(void)16 {17 std::cout play();10 cd->play();11 12 retu... 阅读全文
posted @ 2013-11-04 17:45 WendellYih 阅读(184) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示