随笔分类 -  C++高效编程

上一页 1 2
信号量示例
摘要:信号量(资源)的自动获得和释放: 用户在使用TSemphore这样的类时,必须记住使用Acquire成员函数来获得信号量。更重要的是,在离开函数前必须释放信号量(使用Release)。 必须记住每次退出函数时,都要释放信号量,否则会产生错误. 为了避免这样的麻烦,我们可以使用辅助类来自动获得和释放信 阅读全文
posted @ 2017-03-10 18:10 郑哲 阅读(228) 评论(0) 推荐(0)
对象赋值的语义
摘要:若未声明或实现该赋值操作符,编译器将自动生成一个默认赋值操作符。 实现类似以下代码: 实现: 1 TPoint2D::operation = (const TPoint2D& source 2 { 阅读全文
posted @ 2017-03-09 22:50 郑哲 阅读(191) 评论(0) 推荐(0)
对象复制的语义
摘要:1.我们没有在类中实现拷贝构造函数,那么编译器会自动产生一个默认拷贝构造函数 该拷贝构造函数将执行数据成员的逐个成员复制。类似于以下代码: 1 TPerson::TPerson(const TPerson &sourse) 2 :birthDate(sourse.birthDate),name(so 阅读全文
posted @ 2017-03-09 19:48 郑哲 阅读(133) 评论(0) 推荐(0)
无用单元和悬挂引用
摘要:1.无用单元: 指一块存储区(或资源),该存储区虽然是程序(或进程)的一部分,但是在程序中却不可再对其引用。 按照C++的规定,我们可以说,无用单元是程序中没有指针指向的某些资源; 例如: 2.悬挂引用: 当两个指针同时指向一个地址时,通过一个指针删除了该地址的数据,另一个指针就产生了悬挂引用。 无 阅读全文
posted @ 2017-03-09 19:25 郑哲 阅读(792) 评论(0) 推荐(0)
初始化
摘要:注:尽量初始化对象的所有数据成员,防止未初始化被调用。 1.使用构造函数初始化: ① char *name; char *address; long birthdate; ② 使用已有设置数据成员的函数 ③ 若数据成员为const类型,直接修改,则使用C++自带的初始化器; const long b 阅读全文
posted @ 2017-03-09 18:06 郑哲 阅读(207) 评论(0) 推荐(0)
静态数据成员,静态成员函数
摘要:啊啊啊 阅读全文
posted @ 2017-03-09 18:06 郑哲 阅读(104) 评论(0) 推荐(0)
从函数中返回引用
摘要:要尽可能避免从函数返回引用。 1.[ 阅读全文
posted @ 2017-03-01 19:28 郑哲 阅读(90) 评论(0) 推荐(0)
函数返回值
摘要:类型: T f();按值返回T; T* f();返回T类对象的指针/地址; const T* f();返回指向const.T类对象的指针 T &f();返回对T对象的引用; const T& f();返回对const T对象的引用; Notes: 1.绝不能返回对局部变量的引用(或指向局部变量的指针 阅读全文
posted @ 2017-03-01 19:17 郑哲 阅读(96) 评论(0) 推荐(0)
参数传递模式
摘要:T为一个类名. 1.void f(T x) 按值传递 :调用函数时,产生一个x的副本,函数中修改x副本的值不会修改x的值; 优点:安全,可以防止参数X在函数中不小心被修改 缺点:1.调用f函数时,因为要产生一个副本,所有要调用T类的构造函数。 2.f函数结束时,又要调用T类的析构函数 若T类是一个大 阅读全文
posted @ 2017-03-01 18:51 郑哲 阅读(157) 评论(0) 推荐(0)

上一页 1 2