C++入门——60s从0到1
结构体类型
当我们需要描述一个实体的多个属性时,结构体是一种非常有用的数据类型。在C++中,我们可以使用结构体来定义自己的数据类型,从而更好地组织和管理数据。
本篇文章将详细介绍C++中的结构体类型,包括结构体的定义、成员变量的访问、结构体对象的创建和初始化、结构体指针的使用、结构体嵌套和结构体继承等内容。
结构体的定义
结构体是一种用户自定义的数据类型,可以包含多个不同类型的成员变量。在C++中,结构体的定义通常包含关键字struct,后跟结构体名和成员列表。下面是一个简单的示例:
struct Person {
string name;
int age;
float height;
};
在上面的示例中,我们定义了一个名为Person的结构体类型,它包含三个成员变量:name、age和height。这些成员变量的数据类型分别为string、int和float。
成员变量的访问
我们可以通过点号运算符来访问结构体的成员变量。下面是一个示例:
Person p1 = {"Tom", 20, 1.75};
cout << "Name: " << p1.name << endl;
cout << "Age: " << p1.age << endl;
cout << "Height: " << p1.height << endl;
在上面的示例中,我们创建了一个名为p1的结构体对象,并初始化了它的成员变量。然后我们通过点号运算符访问了结构体的成员变量,并输出了它们的值。
结构体对象的创建和初始化
我们可以使用以下语法来创建一个结构体对象:
struct Person p1 = {"Tom", 20, 1.75};
在上面的示例中,我们使用关键字struct来声明一个名为p1的结构体对象,并使用花括号{}初始化了它的成员变量。注意,花括号{}中的值必须与结构体的成员变量的顺序相对应。
除了使用花括号{}进行初始化外,我们还可以单独对每个成员变量进行初始化。下面是一个示例:
struct Person { string name; int age; float height; }; int main() { Person p1 = {"Tom", 20}; // 对name和age进行初始化,height的值为默认值0.0f p1.height = 1.75f; // 对height进行单独初始化 cout << "Name: " << p1.name << endl; cout << "Age: " << p1.age << endl; cout << "Height: " << p1.height << endl; return 0; }
在上面的示例中,我们对结构体进行了单独的初始化。首先我们创建了一个名为p1的结构体对象,并对name和age进行了初始化。由于height没有显式地进行初始化,因此它的值为默认值0.0f。然后我们又对height进行了单独的初始化。最后我们输出了结构体的成员变量的值。
结构体指针的使用
我们可以使用指针来访问结构体的成员变量和成员函数。下面是一个示例:
struct Person { string name; int age; float height; }; int main() { // 通过指针访问结构体的成员变量和成员函数 Person *ptr = &p1; // 将指针指向结构体对象p1 ptr->display(); // 通过指针调用display()函数 cout << "Age: " << ptr->age << endl; // 通过指针访问age成员变量 return 0; }
在上面的示例中,我们首先定义了一个名为Person的结构体类型,并在其中添加了一个名为display的成员函数。然后我们创建了一个名为p1的结构体对象,并通过指针ptr指向它。最后我们通过指针调用了结构体的成员函数和访问了成员变量的值。需要注意的是,在使用指针访问结构体的成员时需要使用箭头运算符->。