c++类和结构体有哪些区别

  介绍

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

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

c++中的结构体和类基本是通用的,唯有几个细节不同:

<李>

使用类时,类中的成员默认都是私人属性的;而使用结构体时,结构体中的成员默认都是公共属性的。

<李>

类继承默认是私人继承,而结构继承默认是公共继承。

<李>

类可以使用模板,而结构不能。

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

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

使用结构体来定义类的一个反面教材:

# include  & lt; iostream>   using  namespace 性传播疾病;   struct 学生{   学生才能(char  *名,int 年龄,float 分数);   void 才能显示();   char 才能;* m_name;   int 才能;m_age;   float 才能;m_score;   };   学生:学生(char  *名字,,int 年龄,float 分数):,m_name(名字),m_age(年龄),m_score(分数){,}   void 学生::显示(){   cout<才能;& lt; m_name<& lt;“的年龄是“& lt; & lt; m_age<& lt;“成绩是“& lt; & lt; m_score<& lt; endl;   }   int  main () {   Student 才能;斯图(“小明“,,15日,92.5度);   stu.show才能();   Student 才能;* pstu =, new 学生(“李华“,,16日,96);   pstu →,才能显示();   return 才能;0;   }

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

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

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

c++类和结构体有哪些区别