学习C++ – C++自定义类型
定义您自己的数据类型
您可以通过定义一个类来定义新的数据类型。
类类型可以是其他类型的基本类型或其他类类型的变量的组合。
类也可以具有作为其定义的组成部分的功能。
您可以定义一个类型为Box,它包含存储长度,宽度和高度来表示框的变量。
然后,您可以定义Box类型的变量,就像定义基本类型的变量一样。
每个Box对象将包含自己的长度,宽度和高度尺寸,您可以根据需要在程序中创建和操作尽可能多的Box对象。
类是用户定义的数据类型。
在类中定义的变量和函数是类的成员。
变量是数据成员和函数是函数成员。
类的函数成员是有时称为方法。
类型的变量存储对象。对象有时被称为类的实例。
定义类的实例被称为实例化。
面向对象
面向对象编程包含了一些其他重要的想法(着名的封装和数据隐藏,继承和多态)。
继承是根据另一种定义一种类型的能力。
多态性是指在不同时间采取不同形式的能力。
C++中的多态性总是涉及使用指针或引用来调用对象的函数成员。
定义类
类是用户定义的类型。
类型的定义使用class关键字。类定义的基本组织如下所示:
class ClassName { // Code that defines the members of the class... };
此类类型的名称为ClassName。
使用用户定义类的大写名称来区分类型和变量名是一个常见的约定。
类的成员都在大括号之间指定。
函数成员的定义可以在类定义的内部或外部。
class Box { private: double length {1.0}; double width {1.0}; double height {1.0}; public: // Function to calculate the volume of a box double volume() { return length*width*height; } };
length,width和height是Box类的数据成员,都是double类型。
每个Box对象都有自己的数据成员集。
这是很明显的 – 如果他们没有自己的数据成员,所有的对象都是一样的。
您可以像这样创建一个类型为Box的变量:
Box myBox; // A Box object with all dimensions 1
myBox变量指的是具有默认数据成员值的Box对象。您可以调用该对象的volume()成员来计算卷:
std::cout << "Volume of myBox is" << myBox.volume() << std::endl; // Volume is 1.0
您可以将数据成员指定为public,在这种情况下,您可以从类外部显式设置它们,如下所示:
myBox.length = 1.5; myBox.width = 2.0; myBox.height = 4.0; std::cout << "Volume of myBox is" << myBox.volume() << std::endl; // Volume is 12.0