
C/C++
文章平均质量分 74
lazybin
这个作者很懒,什么都没留下…
展开
-
C++ copy constructor 构建
最近在看《深度探索C++对象模型》一书,里面讲到了C++ 拷贝构造函数的构建,这里做一下笔记,供以后查阅。我们知道有三种情况类的对象调用拷贝构造函数1,用一个对象对另外一个对象初始化。2,当该对象作为参数以值传入的方式传给某个函数时候。3,当函数返回一个对象(副本)的时候。 拷贝构造函数有以下两个定义方式:X::X(const X& x);X::X(const X& x,原创 2012-12-23 14:00:13 · 4821 阅读 · 0 评论 -
C++四个cast的用法
C++的强制转换方式比C语言更加丰富,常见的有四个:1,const_cast2,static_cast3,dynamic_cast4,reinterpret_cast这四个的使用方式都一样:T t = XXX_cast(expressions)。1,const_cast这个操作符可以去掉变量const属性或者volatile属性的转换符,这样就可以更改const变量了。比如原创 2012-12-26 19:59:09 · 4567 阅读 · 0 评论 -
C++默认构造函数
最近在看《深度探索C++对象模型》,看的头大。对于c++默认构造函数,一直有两个错误的认识。1,没有定义默认构造函数的类都会被编译器生成一个默认构造函数。2,编译器生成的默认构造函数会初始化所有数据成员。而lippman在书中告诉我们 以上两个理解是错误的。先看第2条,举个例子。#include using namespace std;class Base {原创 2012-12-22 00:48:23 · 717 阅读 · 0 评论 -
C++定义不能被继承的类
C++的定义的类要求不能被继承,貌似最简单的想法是将构造函数定义为私有的,但事实上这样并不对,这会引发一个问题,用户如何实例化该类?因为友元关系是不能够被继承的,所以可以考虑友元+私有化构造函数来实现。现在假设有一个class,叫Base,它不希望被继承,而且再假设有一个辅助类uninherit,Base是辅助类uninherit的友元,而且辅助类uninherit的构造函数是私有的,于是假定原创 2012-12-22 12:51:26 · 3996 阅读 · 4 评论 -
C++构造函数初始化列表
一直不怎么在意构造函数的初始化列表,从觉得放在列表里和放在构造函数体里面一样,实际上 二者还是有差别的。构造函数初始化列表以一个冒号开始,接着用逗号隔开各个成员,每个成员后面跟着一个放在小括号内的初始化式。例如下面的初始化列表class Base { public: Base(int a, double b) :i_val(a), d_val(b)//(1)这个就是原创 2013-03-29 21:47:39 · 896 阅读 · 0 评论 -
二分查找c++代码
二分查找,很经典的,但是容易忽略边界问题,常常产生bug。这里记下,以供后期检查。据说抽样中 90%的程序员跪在了这个题中。#include using namespace std;int binarySearch(int A[], int n, int v){ int low = 0; int high = n - 1; while (low <= hig原创 2013-04-03 22:53:38 · 1298 阅读 · 0 评论