广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++ class和struct有哪些区别
  • 338
分享到

C++ class和struct有哪些区别

2023-06-06 18:06:38 338人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关c++ class和struct有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct

这篇文章将为大家详细讲解有关c++ class和struct有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。

C++中的 struct 和 class 基本是通用的,唯有几个细节不同:

  • 使用 class 时,类中的成员默认都是 private 属性的;而使用 struct 时,结构体中的成员默认都是 public 属性的。

  • class 继承默认是 private 继承,而 struct 继承默认是 public 继承。

  • class 可以使用模板,而 struct 不能。

C++ 没有抛弃C语言中的 struct 关键字,其意义就在于给C语言程序开发人员有一个归属感,并且能让C++编译器兼容以前用C语言开发出来的项目

在编写C++代码时,我强烈建议使用 class 来定义类,而使用 struct 来定义结构体,这样做语义更加明确。

使用 struct 来定义类的一个反面教材:

#include <iOStream>using namespace std;struct Student{  Student(char *name, int age, float score);  void show();  char *m_name;  int m_age;  float m_score;};Student::Student(char *name, int age, float score): m_name(name), m_age(age), m_score(score){ }void Student::show(){  cout<<m_name<<"的年龄是"<<m_age<<",成绩是"<<m_score<<endl;}int main(){  Student stu("小明", 15, 92.5f);  stu.show();  Student *pstu = new Student("李华", 16, 96);  pstu -> show();  return 0;}

运行结果:
小明的年龄是15,成绩是92.5
李华的年龄是16,成绩是96

这段代码可以通过编译,说明 struct 默认的成员都是 public 属性的,否则不能通过对象访问成员函数。如果将 struct 关键字替换为 class,那么就会编译报错。

关于“C++ class和struct有哪些区别”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: C++ class和struct有哪些区别

本文链接: https://www.lsjlt.com/news/248199.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++ class和struct有哪些区别
    这篇文章将为大家详细讲解有关C++ class和struct有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct ...
    99+
    2023-06-06
  • c++中class和struct的区别是什么
    在C++中,class和struct都用于定义自定义的数据类型,但它们之间有几个区别。1. 默认的访问修饰符:在class中,默认的...
    99+
    2023-09-15
    c++
  • C++中的struct和class的区别详解
    目录1. C++的struct和class的区别1.1 成员访问范围的差异structclass1.1 继承关系访问范围的差异struct : structstruct : clas...
    99+
    2022-11-13
    C++中的struct C++中的class struct和class的区别
  • C#中struct与class的区别详解
    目录1.最大的区别2.struct成员无法被声明为protected。3.struct是隐式的sealed类4.struct中无法重载默认构造函数5.关于对象的初始化6.结构体没有析...
    99+
    2022-11-13
  • C++函数调用与Struct和CLass的区别是什么
    本篇内容介绍了“C++函数调用与Struct和CLass的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、结构回顾结构:自定义的...
    99+
    2023-06-30
  • C++详细讲解函数调用与Struct和CLass的区别
    目录一、结构回顾1、传值调用2、引用调用3、指针调用二、public和private权限修饰符三、类简介四、类的组织一、结构回顾 结构:自定义的数据类型,不管C++/C结构都用Str...
    99+
    2022-11-13
  • html中id和class有哪些区别
    这篇文章主要为大家展示了“html中id和class有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html中id和class有哪些区别”这篇文章吧。 ...
    99+
    2022-10-19
  • C#基础教程之类class与结构struct的区别
    目录一、类class二、结构struct三、测试控制台应用程序GenericTemplateDemo:四、程序运行如图:补充:结构与类的区别总结一、类class 类class是引用类...
    99+
    2022-11-13
    c#  class  struct c# 类class与结构struct c# 类class
  • C++类和对象之封装及class与struct的区别是什么
    本篇内容主要讲解“C++类和对象之封装及class与struct的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++类和对象之封装及class与struct的区别是什么”吧!封装的意...
    99+
    2023-06-30
  • C++深入探索类和对象之封装及class与struct的区别
    目录封装的意义访问权限class和struct的区别成员属性私有案例练习封装的意义 封装是C++三大面向对象之一 意义: 1、设计类的时候,属性和行为写在一起,表现事物 2、类在设计...
    99+
    2022-11-13
  • c#和JavaScript有哪些区别
    这篇文章将为大家详细讲解有关c#和JavaScript有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 区别:1、JavaScript...
    99+
    2022-10-19
  • html5中class与id有哪些区别
    这篇文章主要介绍了html5中class与id有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 区别:1...
    99+
    2022-10-19
  • C语言和C#有哪些区别
    这篇文章主要介绍“C语言和C#有哪些区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言和C#有哪些区别”文章能帮助大家解决问题。C#是三大主流OOP(面向对象编程)语言(C++,Java,C#...
    99+
    2023-06-27
  • c#和java的区别有哪些
    Java和C#都是编程的语言,它们是两个不同方向的两种语言。相同点:他们都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装、继承、多态)。区别:1.c#中的命名空间是namespace类似于Java中的package(包),在J...
    99+
    2021-05-04
    java教程 c# java 区别
  • c++和javascript的区别有哪些
    本篇文章为大家展示了c++和javascript的区别有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。区别:1、C++是静态语言,而javascript是动态语...
    99+
    2022-10-19
  • java和c++的区别有哪些
    这篇文章主要介绍java和c++的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!区别:Java不可以将一个非布尔值当做布尔值在逻辑表达式中使用,C++却可以。C++引入了操作符重载机制,Java不支持。C+...
    99+
    2023-06-14
  • c++ primer和plus的区别有哪些
    C++ Primer和C++ Primer Plus是两本不同的C++教程书籍。下面是它们之间的一些区别:1. 作者:C++ Pri...
    99+
    2023-10-08
    c++
  • javascript和c语言有哪些区别
    本篇内容主要讲解“javascript和c语言有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript和c语言有哪些区别”吧! ...
    99+
    2022-10-19
  • java和c语言有哪些区别
    java和c语言的区别有:1.语言类型不同;2.通用性不同;3.数据类型不同;4.文件组织方式不同;5.应用领域不同;java和c语言的区别有以下几点语言类型不同java是一种面向对象的语言,执行效率高;而c语言是一个面向过程的语言。通用性...
    99+
    2022-10-10
  • HTML中id和class属性之间的区别有哪些
    这篇文章主要为大家展示了HTML中id和class属性之间的区别有哪些,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“HTML中id和...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作