📜  C++中的结构(1)

📅  最后修改于: 2023-12-03 14:59:51.614000             🧑  作者: Mango

C++中的结构

在C++中,结构是一种用户定义的数据类型,它允许您组合不同类型的数据成员。结构和类的主要区别在于,结构的默认访问修饰符是public,而类的默认访问修饰符是private。

声明结构

结构使用关键字“struct”声明,其语法如下:

struct [结构名] {
    [成员1数据类型] [成员1名称];
    [成员2数据类型] [成员2名称];
    ...
} [结构变量名];

下面是一个简单的实例:

#include <iostream>
using namespace std;

struct Person {
    string name;
    int age;
    double height;
};

int main() {
    Person p1;
    p1.name = "John";
    p1.age = 25;
    p1.height = 1.8;
    cout << "Name: " << p1.name << endl;
    cout << "Age: " << p1.age << endl;
    cout << "Height: " << p1.height << endl;
    return 0;
}

输出:

Name: John
Age: 25
Height: 1.8
结构作为函数参数

结构可以作为函数参数传递,例如:

void printPerson(Person p) {
    cout << "Name: " << p.name << endl;
    cout << "Age: " << p.age << endl;
    cout << "Height: " << p.height << endl;
}

int main() {
    Person p1;
    p1.name = "John";
    p1.age = 25;
    p1.height = 1.8;
    printPerson(p1);
    return 0;
}

输出:

Name: John
Age: 25
Height: 1.8
结构指针

结构指针可以用来访问结构中的成员。例如:

Person *p2 = &p1;
p2->name = "Mike";
p2->age = 30;
p2->height = 1.75;
cout << "Name: " << p1.name << endl;
cout << "Age: " << p1.age << endl;
cout << "Height: " << p1.height << endl;

输出:

Name: Mike
Age: 30
Height: 1.75

其中,“->”是结构指针访问成员的运算符。

结构数组

结构也可以用于数组的定义。例如:

Person pArray[3];
结构中的函数

结构中也可以包含函数,称为“结构体函数”或“成员函数”。例如:

struct Rectangle {
    int width;
    int height;
    int getArea() {
        return width * height;
    }
};

int main() {
    Rectangle r1;
    r1.width = 4;
    r1.height = 5;
    cout << "Area: " << r1.getArea() << endl;
    return 0;
}

输出:

Area: 20

在上面的例子中,getArea()是一个结构体函数,它返回结构中成员width和height的乘积。

总结

结构是C++中非常强大的功能之一。它允许您组合不同类型的数据成员,可以作为函数参数传递,也可以定义为数组。结构中还可以包含函数,使其更加灵活多样。