C++的结构体(struct)和类(class)对比
在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。文章来源:https://www.toymoban.com/news/detail-610688.html
小结:结构体和类在C++中是非常有用的工具,用于将数据和行为进行组织和封装。它们的主要区别在于默认的访问限制和语义上的差异。结构体适用于简单的数据容器和队列等操作;类提供了更多高级的特性,如继承、封装和多态等,比结构体更有扩展性、灵活性和复杂性。文章来源地址https://www.toymoban.com/news/detail-610688.html
到了这里,关于C++的结构体(struct)和类(class)对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!