当前位置:   article > 正文

C++的结构体(struct)和类(class)对比_c++ 定义类用class还是struct

c++ 定义类用class还是struct

C++的结构体(struct)和类(class)对比

在C++中,结构体(struct)和类(class)都是用户自定义的数据类型,用于封装数据和方法。结构体通常用于定义一些简单的数据结构,而类则更多的用于面向对象的编程。

两者的不同之处如下:

结构体(struct)是一种简单的数据集合,它可以包含不同类型的成员变量,但默认情况下成员变量是公共的(public)。结构体通常被用来表示一组相关的数据,例如描述一个学生的姓名、年龄和成绩等信息。

示例代码:

  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4. struct Person {
  5. //public:
  6. int age;
  7. char name[20];
  8. };
  9. int main() {
  10. Person p;
  11. p.age = 30;
  12. strcpy(p.name, "John");
  13. cout << "Name: " << p.name << ", Age: " << p.age << endl; //输出:Name: John, Age: 30
  14. return 0;
  15. }

类(class)是一种更高级的数据封装方式,它可以包含变量(成员变量)和函数(成员函数)。类的默认访问类型是私有(private),即只能通过公有的成员函数来访问和操作数据成员。类还支持继承、多态等面向对象编程的特性。

示例代码:

  1. #include <iostream>
  2. using namespace std;
  3. class Person {
  4. private:
  5. int age;
  6. string name;
  7. public:
  8. void setAge(int newAge) {
  9. age = newAge;
  10. }
  11. void setName(string newName) {
  12. name = newName;
  13. }
  14. void printInfo() {
  15. cout << "Name: " << name << ", Age: " << age << endl;
  16. }
  17. };
  18. int main() {
  19. Person p;
  20. p.setAge(30);
  21. p.setName("John");
  22. p.printInfo();
  23. return 0;
  24. }

C++中结构体(struct)和类(class)都可以使用访问权限修饰符(access specifiers,访问说明符)。虽然结构体和类在语法上有一些差异,但它们的成员访问权限处理方式是相同的。

通过使用public、protected和private访问权限修饰符,我们可以控制结构体和类的成员对外部的可见性和可访问性。具体来说:

public成员:被public修饰的成员可以在结构体或类的外部直接访问。

protected成员:被protected修饰的成员只能在结构体或类的内部以及派生类中进行访问。

private成员:被private修饰的成员只能在结构体或类的内部访问,对外部是不可见的。

需要注意的是,结构体和类在默认情况下的访问权限是不同的。在结构体中,默认的访问权限是public,而在类中,默认的访问权限是private。

小结:结构体和类在C++中是非常有用的工具,用于将数据和行为进行组织和封装。它们的主要区别在于默认的访问限制和语义上的差异。结构体适用于简单的数据容器和队列等操作;类提供了更多高级的特性,如继承、封装和多态等,比结构体更有扩展性、灵活性和复杂性。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/714862
推荐阅读
相关标签
  

闽ICP备14008679号