1. C++基本对象的组成
  尽管C++社区近十年兴起元编程范式和模板技术,面向对象编程仍是C++语言基础,也是重要的一种编程范式(paradigms)。C++的对象,将过程式的数据结构,以及操作在它们之上的函数,绑定到一个单一的语法单元,那是类(class)。C++世界里,活生生的个体联系是所有类的对象所进行的消息传递,对象协作而构成千变万化的世界。但对象的内部结构,对象的产生和消亡,数据成员和函数成员的结构,困扰了无数初学者。
  C++基本对象由以下几方面元素组成:
  对象数据成员(非静态数据成员)
  类数据成员(静态数据成员)
  函数成员
  静态函数成员
  这里,我们不考虑类的单继承,多重继承以及虚函数等复杂的特性。
  下面我们对C++基本对象进行抽丝剥茧,深入分析对象的内存布局,与之相关的静态变量,成员函数。
  2. 一个简单的例子
  为简单起见,本文以class point为例子,它包含构造函数,析构函数,函数成员,对象变量,类变量和静态成员函数等语法结构。它的代码如下:

 

class point
{
public:
point(int x, int y)
{
this->x = x;
this->y = y;
ins_cnt++;
}
~point()
{
ins_cnt--;
}
static int get_instances()
{
return ins_cnt;
}
point & move(int addx, int addy)
{
this->x += addx;
this->y += addy;
return *this;
}
private:
int x, y;
static int ins_cnt;
};
int point::ins_cnt = 0;
int main()
{
point x(3, 4);
x.move(10, 10);
int p_ins_cnt = point::get_instances();
return 0;
}