static
语法:static加在变量或者函数之前
作用:在内存中存放到特定区域,一般一些固定的数据可以使用static,静态函数没有this
指针,故静态函数只能处理static的数据。下面的代码是static的具体用法:
1 2 3 4 5 6 7 8 9 10 11 12 13
| class Acount { public: static double m_rate; static void set_rate(const double& x) {m_rate = x}; } double Acount::m_rate = 8.0;
int main() { Acount::set_rate(5.0);
Acount a; a.set_rate(7.0); }
|
把构造函数放在private域中: Singleton设计模式
1 2 3 4 5 6 7 8 9 10
| class A { public: static A& getInstance (return a;); setup() {...} private: A(); A(const A& rhs); static A a; ... };
|
cout
cout可以打印各种类型的值,原因是cout类里面写了各种类型的操作符重载。
类模板
类模板代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12
| template<typename T> class complex { public: complex (T r=0, T i=0): re(r), im(i) {} comple& operator += (const complex&); T real () const {return re;} T imag () const {return im;} private: T re, im;
friend complex& __doapl (complex*, const complex&); }
|
使用时可以如下使用:
1 2
| complex<double> c1(2.5, 1.5); complex<int> c2(2, 1);
|
函数模板
函数模板写法如下:
1 2 3 4 5
| template <class T> inline const T& min (const T& a, const T& b) { return b < a ? b : a; }
|
使用:函数模板使用时不必显式指明具体的T的类型,编译器会对function template进行实参推导,自动推理出实参的类型:
1 2
| stone r1(2, 3), r2(3, 3); r3 = min(r1, r2);
|
namespace
namespace语法如下:
使用命名空间:
1 2
| using namespace std; using std::cout;
|