
C++
kaitaow
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Effective C++ Item03 Note
#include #include #include using namespace std; //T const*和const T*是同样的 //const出现在*号左边,表示所指物是常量,出现在*号右边,表示指针是常量 class Widget{ private: int size; public: int getSize() const{ return size; } }; //原创 2014-12-08 18:58:54 · 290 阅读 · 0 评论 -
union和enum的使用
//union和enum的使用 #include #include using namespace std; class Token { public: enum TokenKind { INT1, CHAR1, DBL1 }; TokenKind tok; union TokenValue { char cval; int ival; double dval; }val;原创 2014-12-14 10:37:39 · 448 阅读 · 0 评论 -
实现strcpy和strlen函数
//实现strlen和strcpy函数 #include #include #include using namespace std; char* m_strcpy(char*strDest, const char*strSrc){ assert(strDest != NULL && strSrc != NULL); char* address = strDest; while (*strS原创 2014-12-14 11:00:47 · 458 阅读 · 0 评论 -
Effective C++ Item11 Note
//Effective C++ Item11 在operator=中处理自我赋值 #include #include using namespace std; class Bitmap{ }; class Widget{ public: Widget& operator=(const Widget& rhs){ //*this和rhs有可能是同一个对象,此时pb将错误地指向一个已被删除的原创 2014-12-10 15:25:31 · 344 阅读 · 0 评论 -
Effective C++ Item09 Note
//Effective C++ Item09 //绝不在构造和析构过程中调用virtual函数 #include #include using namespace std; class Transaction{ public: Transaction(){ //被调用的logTransaction是Transaction内部的版本,不是BuyTransaction内的版本,因为此时deri原创 2014-12-10 14:56:02 · 280 阅读 · 0 评论 -
Effective C++ Iem08 Note
//Effective C++ Item08 #include #include using namespace std; //析构函数绝对不要吐出异常。如果一个被析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下它们(不传播)或结束程序 //如果客户需要对某个操作函数运行期间抛出的异常做出反应,那么class应该提供一个普通函数(而非在析构函数中)执行该操作。 //例如对于std原创 2014-12-10 11:46:27 · 272 阅读 · 0 评论 -
Effective C++ Item05 Note
//Effective C++ Item05 #include #include using namespace std; //声明一个empty class时,编译器会为它声明一个default构造函数,copy构造函数,一个copy assignment操作符和一个析构函数,所有这些函数都是public inline //编译器产出的析构函数是non-virtual的,除非base class原创 2014-12-10 10:08:43 · 393 阅读 · 0 评论 -
Effective C++ Item13 Note
#include #include #include using namespace std; class Investment{ }; Investment* createInvestment(){ } void f(){ //Investment* pInv = createInvestment(); //delete pInv; //智能指针,其析构函数自动对其所指对象调用d原创 2014-12-11 10:33:09 · 360 阅读 · 0 评论 -
Effective C++ Item07 Note
#include #include using namespace std; //带有virtual函数的class都有一个相应的一个由函数指针构成的数组,称为vtbl(virtual table) //欲实现出virtual函数,对象必须携带一个指向vtbl的指针vptr(virtualtable pointer),对象的体积会增加 class TimeKeeper{ public: Time原创 2014-12-10 11:03:58 · 268 阅读 · 0 评论 -
Effective C++ Item06 Note
#include #include using namespace std; class Uncopyable{ private: Uncopyable(const Uncopyable&); Uncopyable& operator=(const Uncopyable&); }; class HomeForSale{ private: //通过将copy构造函数和copy assignme原创 2014-12-10 10:20:47 · 370 阅读 · 0 评论 -
Effective C++ Item02 Note
//Effective C++ Item02 #include #include #include using namespace std; //#define不能够用来定义class专属常量,记号名称ASPECT_RATIO从未被编译器看见 #define ASPECT_RATIO 1.653 const double AspectRatio = 1.653; #define CALL_WI原创 2014-12-08 14:20:44 · 364 阅读 · 0 评论 -
Effective C++ Item04 Note
//Effective C++ Item05 #include #include #include using namespace std; //array(来自C part of C++)不保证其内容被初始化,vector(STL part of C++)却由此保证 //C++对不同编译单元内的non-local static对象的初始化顺序并无明确定义 //如果某编译单元内的某个non-loc原创 2014-12-08 23:07:15 · 292 阅读 · 0 评论 -
Effective C++ Item12 Note
//Effective C++ Item11 在operator=中处理自我赋值 #include #include using namespace std; class Customer{ public: //Customer(const Customer& rhs); Customer& operator=(const Customer& rhs){ name = rhs.name;原创 2014-12-10 16:03:26 · 358 阅读 · 0 评论