月度存档: 10 月 2010

C++ 模板

模板函数:

template <class T>

T func(T t1)

{

return t1;

}

模板类:

template <class T>

class CA

{

public:

T func(T t1);

}

template <class T>

T CA<T>::func(T t1)

{

return t1;

}

四种不同的对象生存方式

in stack:      int a;

in heap:      int* pa = new int;

global:       int a; (not in a function)

local static:      static int a;

关于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;
}