分类存档: Moo - 第27页

New Home

=====9/14/2011=====

We have moved to our new home.

Plan to move all the old things too 🙂

律诗格律

五绝

注:⊙表示可平可仄
类型一
⊙平平仄仄,
⊙仄仄平平。(韵)
⊙仄平平仄,
平平仄仄平。(韵)
例诗:
山中
王勃
长江悲已滞,
万里念将归。
况属高秋晚,
山中黄叶飞。
类型二
平平仄仄平,(韵)
⊙仄仄平平。(韵)
⊙仄平平仄,
平平仄仄平。(韵)
例诗:
静夜思
李白
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。

锁事–2011.7.25

一天好快又要结束了,时间总是那么静悄悄的,永远也找不到它流过的痕迹。今天的工作还比较轻松,只是晚上公司的蓝球赛要多留一个小时,好郁闷- -!。明天早上争取早点起,做班车,然后下班了去理发!、

关于static

static 3种用法

类的成员:。。。

函数中变量:。。。

全局:若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度

拷贝构造函数

class CA
{
public:
CA()
{
_i = 7;
}
CA(const CA& ca)
{
this->_i = ca._i;
}
private:
int _i;
};
int _tmain(int argc, _TCHAR* argv[])
{
CA a;
CA b = a;
return 0;
}
CA b = a; 会调用拷贝构造函数;
若改为:
CA b;
b = a; 不会调用拷贝构造函数,但如果存在会调用以下函数:
CA& operator = (const CA& ca)
{
this->_i = ca._i;
return *this;
}

多继承类的指针偏移问题

例如:
struct C1
{
public:
virtual void D1() = 0;
};
class C2
{
public:
virtual void D2() = 0;
};
class C : public C1, public C2
{
public:
virtual void D1()
{
C* p = this;
C1* q = this;
C2* r = this;
}
virtual void D2()
{
C* p = this;
C1* q = this;
C2* r = this;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
C c;
c.D1();
c.D2();
return 0;
}
this指针会在转换时调整
D1中this: 0x0035f7fc     p: 0x0035f7fc     q: 0x0035f7fc     r: 0x0035f800
D2中this: 0x0035f800   p: 0x0035f7fc     q: 0x0035f7fc     r: 0x0035f800