赞
踩
在C++中,结构体(struct)和类(class)都是用户自定义的数据类型,用于封装数据和方法。结构体通常用于定义一些简单的数据结构,而类则更多的用于面向对象的编程。
两者的不同之处如下:
结构体(struct)是一种简单的数据集合,它可以包含不同类型的成员变量,但默认情况下成员变量是公共的(public)。结构体通常被用来表示一组相关的数据,例如描述一个学生的姓名、年龄和成绩等信息。
示例代码:
- #include <iostream>
- #include <cstring>
- using namespace std;
-
- struct Person {
- //public:
- int age;
- char name[20];
- };
-
- int main() {
- Person p;
- p.age = 30;
- strcpy(p.name, "John");
-
- cout << "Name: " << p.name << ", Age: " << p.age << endl; //输出:Name: John, Age: 30
-
-
- return 0;
- }

类(class)是一种更高级的数据封装方式,它可以包含变量(成员变量)和函数(成员函数)。类的默认访问类型是私有(private),即只能通过公有的成员函数来访问和操作数据成员。类还支持继承、多态等面向对象编程的特性。
示例代码:
- #include <iostream>
- using namespace std;
-
- class Person {
- private:
- int age;
- string name;
-
- public:
- void setAge(int newAge) {
- age = newAge;
- }
-
- void setName(string newName) {
- name = newName;
- }
-
- void printInfo() {
- cout << "Name: " << name << ", Age: " << age << endl;
- }
- };
-
- int main() {
- Person p;
- p.setAge(30);
- p.setName("John");
-
- p.printInfo();
-
- return 0;
- }

C++中结构体(struct)和类(class)都可以使用访问权限修饰符(access specifiers,访问说明符)。虽然结构体和类在语法上有一些差异,但它们的成员访问权限处理方式是相同的。
通过使用public、protected和private访问权限修饰符,我们可以控制结构体和类的成员对外部的可见性和可访问性。具体来说:
public成员:被public修饰的成员可以在结构体或类的外部直接访问。
protected成员:被protected修饰的成员只能在结构体或类的内部以及派生类中进行访问。
private成员:被private修饰的成员只能在结构体或类的内部访问,对外部是不可见的。
需要注意的是,结构体和类在默认情况下的访问权限是不同的。在结构体中,默认的访问权限是public,而在类中,默认的访问权限是private。
小结:结构体和类在C++中是非常有用的工具,用于将数据和行为进行组织和封装。它们的主要区别在于默认的访问限制和语义上的差异。结构体适用于简单的数据容器和队列等操作;类提供了更多高级的特性,如继承、封装和多态等,比结构体更有扩展性、灵活性和复杂性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。