大胖的部落格

Just a note

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  112 随笔 :: 0 文章 :: 3 评论 :: 0 Trackbacks
1.如果一个函数的参数没有被使用,可以只有类型,没有名字,以避免编译器警告。
例如placement new:
//placement new, first parameter has no name.
void * operator new(size_t, void *location)
{
    
return location;
}


2.类的成员初始化表中仅允许表达式,所以如果需要条件判断,可以用?:操作符。
如下代码中输入指针若为空,bool成员初始化为false,否则为true。
class Object
{
public:
    Object(
const int*);

private:
    
bool valid;
}
;

Object::Object(
const int* i)
:valid(NULL
!=? true:false)
{

}



3.
lazy evaluation
当需要时才计算,适合必须支持某些操作而不总需要其结果时。

over-eager
caching(缓存)那些已经被计算出来而以后还有可能需要的值,或者分配额外的空间来避免频繁地分配空间,以空间换时间。适合必须支持某些操作而其结果几乎总是被需要或被不止一次地需要时。


4、this指针
在非const成员函数中,它的类型是指向该类类型的指针,A* const; 在const 成员函数中,是指向const 类类型的指针, const A* const。
this指针的值不可改变,由编译器定义并初始化。
每个成员函数都传入了一个隐藏参数this指针,其指向该成员函数所在对象的地址。
使用:
在类的非静态成员函数中返回类对象本身的时候,直接使用 return *this;
另外一种情况是当参数与成员变量名相同时,如this->n = n (不能写成n = n)。


5、
c的main函数是程序的开始,c++的main函数在执行之前会先初始化静态和全局的对象。
所以尽量用C++来写main函数。

posted on 2009-05-21 11:25 大胖 阅读(150) 评论(0)  编辑 收藏 引用 所属分类: C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理