类与结构的对比
1、结构
1.1 定义结构
// 声明一个 结构体类型 Books
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
};
1.2 定义结构体类型为 Books 的变量
Books Book1; // 定义结构体类型 Books 的变量 Book1
Books Book2; // 定义结构体类型 Books 的变量 Book2
1.3 结构变量作为函数参数,并访问结构成员的方法
printBook( Book1 );
void printBook( struct Books book )
{
cout << "书标题 : " << book.title <<endl;
cout << "书作者 : " << book.author <<endl;
cout << "书类目 : " << book.subject <<endl;
cout << "书 ID : " << book.book_id <<endl;
}
结构变量访问结构的成员,需要使用 成员访问运算符(.)
如,Book2.title、Book2.author
1.4 结构指针作为函数参数,并访问结构成员的方法
printBook( &Book1 );
void printBook( struct Books *book )
{
cout << "书标题 : " << book->title <<endl;
cout << "书作者 : " << book->author <<endl;
cout << "书类目 : " << book->subject <<endl;
cout << "书 ID : " << book->book_id <<endl;
}
结构指针变量访问结构的成员,需要使用 成员访问运算符 (->)
2、类
2.1 定义类
// 使用关键字 class 定义 Box 数据类型
class Box
{
public:
double length; // 盒子的长度
double breadth; // 盒子的宽度
double height; // 盒子的高度
};
2.1 声明类为Box的对象
// 声明 类的对象,就像声明 基本类型的变量一样
Box Box1; // 声明 对象Box1,类型为 Box
Box Box2; // 声明 对象Box2,类型为 Box
2.3 对象,访问类的成员变量/函数的方法
// box 1 详述
Box1.height = 5.0;
Box1.length = 6.0;
Box1.breadth = 7.0;
和结构变量访问结构的成员一样,对象访问成员变量或者成员函数时,需要使用 成员访问运算符(.)
如,Box1.height、Box1.length
2.3 指向对象的指针,访问类的成员变量/函数的方法
// 保存第一个对象的地址
ptrBox = &Box1;
// 使用成员访问运算符来访问成员
cout << "Volume of Box1: " << ptrBox->Volume() << endl;
一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成员访问运算符 ->,就像访问指向结构的指针一样