C++语言程序设计

C++的类机制
这里我们讨论C++的关键概念之一：类机制。我们不仅要学会如何声明、定义和使用类，而且，最重要的是，要知道用类代替结构的原因，而且要知道使用类究竟能带来什么好处。
首先，我们回顾一下已经学习过的结构：结构是一种用户定义的数据类型，它将合法的数据类型的变量聚集到一起。下面是一个简单的结构声明：
struct family
{
char *husband;
char *wife;
char *son;
char *daughter;
};
family Anderson;
结构family由四个指向字符数组的指针变量组成，这些变量分别为husband、wife、son和daughter。Anderson是结构类型family的一个变量，也可以在声明时初始化Anderson的成员，并通过指针来存取：
Anderson.husband = "John Anderson";
Anderson.wife = "Mary Anderson";
Anderson.son = "Joey Anderson";
Anderson.daughter = "Marla Anderson";
通过指针来访问Anderson的成员，可用如下程序来说明：

| 例10-2

#include <iostream.h>
struct family
{
char *husband;
char *wife;
char *son;
char *daughter;
};
//声明Anderson为结构类型family的一个变量
family Anderson =
{
"John Anderson","Mary Anderson",
"Joey Anderson","Marla Anderson"
};
//ptr是family类型的指针
family *ptr;
void main(void)
{
//ptr指向family的第一个成员
ptr = &Anderson;
cout<<"husband is "<<ptr->husband<<endl
<<"wife is "<<ptr->wife<<endl
<<"son is "<<ptr->son<<endl
<<"daughter is "<<ptr->daughter<<endl;
}

编译运行该程序会得到如下输出结果：
husband is John Anderson
wife is Mary John Anderson
son is Joey Anderson
daughter is Marla Anderson
在本程序中声明了一个名为family的结构，定义Anderson为这个结构类型的变量，并且给其中各成员赋以初始化值，接着，声明了这个类型的指针ptr。在main中，指针ptr指向存储结构变量Anderson的内存地址。通过指向相应成员的指针，由cout语句来打印输出Anderson的每个结构成员。
要注意在声明Anderson和ptr时，关键字struct被省略掉了。在C++中，这个关键字是可选的，但在声明结构类型时，这个关键字则是必不可少的。