jeans chen
we've got them by the balls

随笔分类 -  CC++

上一页 1 2 3 4 下一页
CC++
[EffectiveC++]item23:Prefer non-member non-friend functions to member functions
摘要:99页导致较大封装性的是non-member non-friend函数,因为它并不增加“能否访问class内之private成分”的函数数量。 阅读全文
posted @ 2013-08-01 14:13 jeans chen 阅读(165) 评论(0) 推荐(0)
[EffectiveC++]item22:Declare data members private
摘要:将成员变量隐藏在函数接口的背后,可以为“所有可能的实现”提供弹性,假设我们有一个public成员变量,而我们最终取消了它,多少代码可能会被破坏呢?那是一个不可知的大量。protected成员变量就像public成员一样缺乏封装性(所有使用它的derived都会被破坏) 阅读全文
posted @ 2013-08-01 14:11 jeans chen 阅读(134) 评论(0) 推荐(0)
[EffectiveC++]item17:以独立语句将newed对象置入智能指针
摘要:Store newed objects in smart pointers in standalone statements 阅读全文
posted @ 2013-07-31 14:25 jeans chen 阅读(192) 评论(0) 推荐(0)
[EffectiveC++]item15:Provide access to raw resources in resource-managing class
摘要:在资源管理类中提供对原始资源的访问 阅读全文
posted @ 2013-07-31 14:17 jeans chen 阅读(139) 评论(0) 推荐(0)
C++ 中operator用法:隐式类型转换
摘要:【转】C++ operator两种用法 C++,有时它的确是个耐玩的东东,就比如operator,它有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换)。1、操作符重载C++可以通过operator实现重载操作符,格式如下:类型T operator 操作符 (),比如重载+,比如下面这个例子template class A{public: const T operator+(const T& rhs) { return this->m_ + rhs; }private: T m_;};又比如STL中的函数 阅读全文
posted @ 2013-07-31 11:28 jeans chen 阅读(8645) 评论(0) 推荐(0)
[EffectiveC++]item13:Use objects to manage resources(RAII)
摘要:baidu百科RAII百科名片RAII,也称为“资源获取就是初始化”,是c++等编程语言常用的管理资源、避免内存泄露的方法。它保证在任何情况下,使用对象时先构造对象,最后析构对象。目录RAII简介RAII的分类RAII实际应用RAII与STL容器编辑本段RAII简介RAII[1](Resource Acquisition Is Initialization),也成为“资源获取就是初始化”,是C++语言的一种管理资源、避免泄漏的惯用法。C++标准保证任何情况下,已构造的对象最终会销毁,即它的析构函数最终会被调用。简单的说,RAII 的做法是使用一个对象,在其构造时获取资源,在对象生命期控制对资源 阅读全文
posted @ 2013-07-30 17:44 jeans chen 阅读(281) 评论(0) 推荐(0)
为什么拷贝构造函数的参数必须是引用?
摘要:为什么拷贝构造函数的参数必须是引用?(2011-10-12 17:31:21)转载▼例子:inline Account::Account( const Accout &rhs ): _balance( rhs._balance ){ _name = new char[strlen(rhs._name)+1 ]; strcpy(_name, rhs._name ); // 不能拷贝 rhs._acct_nmbr _acct_nmbr = get_unique_acct_nmbr();}int main(){Account acct2( acct1 );}问题:为什么拷贝构造函数Accou 阅读全文
posted @ 2013-07-30 17:12 jeans chen 阅读(458) 评论(0) 推荐(0)
[EffectiveC++]item12:copy all parts of an object
摘要:在小书C++中,4.2.2 派生类的构造函数和析构函数的构造规则(103页)在定义派生类对象时,构造函数执行顺序如下:基类的构造函数对象成员的构造函数派生类的构造函数。 阅读全文
posted @ 2013-07-30 16:00 jeans chen 阅读(157) 评论(0) 推荐(0)
[EffectiveC++]item10:have assignment operators return a reference to *this
摘要:令operator=返回一个reference to *this 阅读全文
posted @ 2013-07-30 15:40 jeans chen 阅读(145) 评论(0) 推荐(0)
[EffectiveC++]item03:尽可能使用const 并且转载一篇关于const函数的博客
摘要:速度 #include using namespace std;class TextBlock{private: string text;public: TextBlock(string s) { text = s; } const char& operator[](size_t position) const {return text[position]; } char& operator[](size_t position) {return text[position]; }};int main(){ TextBlock... 阅读全文
posted @ 2013-07-29 16:06 jeans chen 阅读(200) 评论(0) 推荐(0)
[EffectiveC++]item02:尽量以const,enum,inline代替#define
摘要: 阅读全文
posted @ 2013-07-25 16:47 jeans chen 阅读(172) 评论(1) 推荐(0)
[EffectiveC++]导读 default构造函数
摘要:class B{public: explicit B(int x = 0,bool b = true); //default构造函数 };explicit可以阻止用来执行隐式类型转换,但是可以用来进行显式类型转换。void doSomething (B bObject);doSometing(B(28));//使用B的构造函数将int显式转换(cast)为一个B以促成此一调用copy构造函数被用来“以同型对象初始化自我对象”,copy assignment操作符被用来“从另一个同型对象中拷贝其值到自我对象。”声明式(declaration)是告诉编译器某个东西的名称和类型(type... 阅读全文
posted @ 2013-07-25 16:23 jeans chen 阅读(395) 评论(0) 推荐(0)
[C++]auto_ptr绑定到指针
摘要:接受指针的构造函数为explicit构造函数,所以必须使用初始化的直接形式来创建auto_ptr对象:auto_ptr pi = new int(1024);//errorauto_ptr pi(new int(1024));//ok:uses direct initialization 阅读全文
posted @ 2013-07-22 14:10 jeans chen 阅读(143) 评论(0) 推荐(0)
[EffectiveC++]item41:了解隐式接口和编译器多态
摘要:classes和templates都支持接口和多态,interfaces and polymorphism对classes而言接口是显示的explicit,以函数签名为中心。多态则是通过virtual函数发生于运行期对templates参数而言,接口是隐式的implicit,奠基于有效表达式。多态则是通过templates具现化和函数重载解析function overloading resolution发生于编译期 阅读全文
posted @ 2013-07-09 14:02 jeans chen 阅读(238) 评论(0) 推荐(0)
[EffectiveC++]item04:Make sure the objects are initialized before they're used
摘要:28 页C++规定,对象的成员变量的初始化动作发生在进入构造函数本体之前。构造函数的一个较佳的写法是,使用所谓的member initialization list替换赋值动作。29页但请立下一个规则,规定总是在初值列中列出所有成员变量,以免还得记住哪些成员变量可以无需初值。31页幸运的是一个小小的设计便可以完全消除这个问题。将每个non-local static对象搬到自己的专属函数内(改对象在此函数内被声明为static)。这些函数返回一个reference指向它所含的对象。然后用户调用这些函数,而不直接指涉这些对象。换句话说,non-local static对象被local static 阅读全文
posted @ 2013-07-09 10:22 jeans chen 阅读(224) 评论(1) 推荐(0)

上一页 1 2 3 4 下一页