> 文章列表 > 从零开始学习C++类与对象

从零开始学习C++类与对象

从零开始学习C++类与对象

C++ 是一种面向对象编程语言,它提供了一个强大的类机制来让程序员将数据与操作结合,并且方便地对数据进行管理和操作。在 C++ 中,我们可以使用类来定义自己的数据类型,这些数据类型能够封装数据和对数据的操作,并且能够在一个程序中被多次使用。

一、什么是类和对象

在 C++ 中,类是一种用户自定义的数据类型,它可以包含数据成员和成员函数。其中,数据成员表示类中的数据属性,而成员函数则表示类中的操作方法。对象是类的一个实例,它通常包含了类中定义的所有数据成员,并且可以调用类中定义的成员函数。

类和对象之间的关系如同蓝图与房屋之间的关系,蓝图是用来描述房屋的建造规范的,而房屋则是由蓝图创建出来的具体实例。同样地,类是用来描述对象的属性和方法的,而对象则是根据类的描述创建出来的具体实例。

二、类的声明和定义

在 C++ 中,我们可以通过 class 关键字来声明一个新的类。类的声明通常包含了类名、类中的数据成员以及成员函数的定义。例如,下面是一个简单的类声明:

class Rectangle {
public:int width;int height;int area();
};

在这个类声明中,我们定义了一个名为 Rectangle 的类,该类拥有三个数据成员,包括 widthheightarea。其中,widthheight 分别表示矩形的宽度和高度,而 area 则表示计算矩形面积的成员函数。

需要注意的是,类中的成员函数可以通过 . 操作符来访问,例如,对于上述类的实例对象 rect,我们可以通过 rect.area() 来调用 area 成员函数,计算矩形的面积。

当然,类的定义通常需要放在头文件中,以便在多个源文件中共享。例如,下面是一个简单的类定义的例子:

// Rectangle.h 头文件
#ifndef RECTANGLE_H
#define RECTANGLE_Hclass Rectangle {
public:int width;int height;int area();
};#endif  // RECTANGLE_H
// Rectangle.cpp 源文件
#include "Rectangle.h"int Rectangle::area() {return width * height;
}

在这个例子中,我们首先在头文件 Rectangle.h 中定义了 Rectangle 类,并且在源文件 Rectangle.cpp 中定义了其成员函数 area() 的实现。这样,在需要使用 Rectangle 类时,我们只需要包含头文件 Rectangle.h 即可。

三、对象的创建和使用

在 C++ 中,我们通常使用 new 关键字创建类的对象。例如,下面是一个简单的创建 Rectangle 对象的示例:

Rectangle* rect = new Rectangle;
rect->width = 2;
rect->height = 3;
int a = rect->area();

在这个例子中,我们首先通过 new 关键字创建了一个名为 rectRectangle 对象,并且设置了该对象的 widthheight 属性。随后,我们通过调用 rect->area() 方法来计算矩形的面积,并将结果赋值给整型变量 a

注意,在使用完毕后,我们需要通过 delete 关键字来显式地释放内存空间,避免出现内存泄漏的问题。例如:

delete rect;

四、总结

在 C++ 中,类和对象是面向对象编程的基础。通过使用类和对象,程序员可以方便地封装数据和行为,并且实现代码的复用和模块化。在定义类时,我们需要考虑类中的数据成员和成员函数,并且在实际使用过程中,需要注意合理地分配和释放内存空间。

五、举一个实例

我们假设要创建一个图书类,该类需要包含书名、作者和出版日期等数据成员,并且需要提供一些操作方法,例如获取书名、获取作者名称、获取出版日期等。在 C++ 中,我们可以通过如下代码来定义这个图书类:

class Book {
private:string title;string author;string date;public:void setTitle(string t) {title = t;}string getTitle() {return title;}void setAuthor(string a) {author = a;}string getAuthor() {return author;}void setDate(string d) {date = d;}string getDate() {return date;}
};

在这个实例中,我们使用 class 关键字定义了一个名为 Book 的类,其中包含了私有的数据成员 titleauthordate,以及公有的成员函数 setTitlegetTitlesetAuthorgetAuthorsetDategetDate

其中,setTitlesetAuthorsetDate 成员函数用于设置图书的书名、作者和出版日期信息,而 getTitlegetAuthorgetDate 成员函数用于获取图书的书名、作者和出版日期信息。

接下来,我们可以通过如下方式创建一个 Book 对象,并且对其进行设置和查看:

Book book;
book.setTitle("C++ Primer Plus");
book.setAuthor("Stephen Prata");
book.setDate("2011-08-25");
cout << "Title: " << book.getTitle() << endl;
cout << "Author: " << book.getAuthor() << endl;
cout << "Date: " << book.getDate() << endl;

在这个例子中,我们首先创建了一个名为 bookBook 对象,并且使用 setTitlesetAuthorsetDate 成员函数设置了图书的书名、作者和出版日期信息。

随后,我们使用 getTitlegetAuthorgetDate 成员函数获取了图书的三个信息,并通过 cout 语句将其打印到屏幕上。这样,我们就成功地创建了一个 Book 对象,并且对其进行了操作和查看。