Powered By Blogger

2007年1月19日星期五

this 和 static

请看 函数 的连续调用

int main()

{

myScreen.clear().move(2,2).set('*').display();

bufScreen.reSize(5,5).display();

}

这些函数的共同特点是需要 返回自身的对象

也就是:

// 返回被调用的对象

return *this;

记住 this 是一个指针

Static

不需要对象只要 类名:: 就可以访问了

静态数据成员可以是其受属类

看好,不是引用也不是指针哦

class Bar {

public:

private:

static Bar mem1; // ok

Bar *mem2; // ok

Bar mem3; // 错误

};

缺省实参

可以直接做为缺省实参,而非的却不可以

extern int var;

class Foo {

private:

int var;

static int stcvar;

public:

// 错误: 被解析为非 static Foo::var

// 没有相关的类对象

int mem1( int = var );

// ok: 解析为 static Foo::stcvar

// 无需相关的类对象

int mem2( int = stcvar );

// ok: int var 的全局实例

int mem3( int = ::var );

};

静态成员函数可是没有this 指针的

没有评论: