首页 > 编程语言 >C++中的Struct和Class异同

C++中的Struct和Class异同

时间:2022-11-21 16:48:01浏览次数:39  
标签:struct -- 成员 C++ Class template class Struct

C++中为了和语言兼容,保留了C语言中的struct关键字,并且进行了适当扩充.

C语言 => struct只是包含成员变量,但不包括成员函数

C++中 => struct和class非常类似,既可以包括成员变量,又可以包括成员函数

也就是说C++中,struct和class基本上是可以通用的,只有几个小细节的不同,主要包括以下几方面:

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

2. class继承默认是private继承. 而struct继承则默认是public继承

3. class可以用在模板参数中,但是struct不可以

 

template <class T> -- 可以
template <typename T> --可以
template <struct T>  --不可以

struct Staff
{
     public:
          T name;
};

 

标签:struct,--,成员,C++,Class,template,class,Struct
From: https://www.cnblogs.com/wphl-27/p/16911849.html

相关文章

  • VS 2022创建ATL组件 (C++)
    步骤如下: 1、新建ATL项目 打开VisualStudio2022新建ATL项目2、添加接口类、实现接口方法.  添加一个新的ATL对象。右键MyComTest项目→添加→新建项→ATL→......
  • C++多线程
    c++多线程多线程其实非常简单多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于进程和基于线程......
  • [排序算法] 基数排序 (C++)
    基数排序解释基数排序基数排序RadixSort是一种非基于比较的排序算法。在基数排序中,和计数排序、桶排序的思想类似,我们要再次用到桶这个东西。......
  • eclipse报错:The method convert(String) of type DateConvertor must override a supe
    ​​@Overridemustoverrideasuperclassmethod问题解决​​如果在使用Eclipse开发Java项目时,在使用@Override出现以下错误:Themethod***oftype***mustoverr......
  • 猿创征文 | 【Rust指南】解析struct 结构体的定义、实例化、方法、所有权、关联函数
    文章目录​​  前言​​​​一、结构体的定义​​​​二、结构体实例化​​​​三、元组结构体​​​​四、结构体所有权​​​​五、结构体方法​​​​六、结构体关联函......
  • C++初阶(vector容器+模拟实现)
    迭代器四种迭代器容器类名::iterator迭代器名;//正向迭代器容器类名::const_iterator迭代器名;//常量正向迭代器,const修饰,只能用于读取容器内的元素,不能改变其值容......
  • 用C/C++开发工业软件适合吗?
    用C/C++开发工业软件最适合的了,这是因为C/C++是仅次于汇编语言的最底层程序开发语言;同时工业软件最大的特征就是专业性强、复杂度高,需要相当深的专业知识、经验、科研基础,并......
  • C++ using 编译指令与名称冲突
    using编译指令:它由名称空间名和它前面的关键字usingnamespace组成,它使名称空间中的所有名称都可用,而不需要使用作用域解析运算符。在全局声明区域中使用using编译指......
  • effectiveC++1、2
    条款01视C++为一个语言联邦​ 在学习c++高效编程时会出现“所有的适当用法都有例外”的情况,解决的方法是:不把c++当作一门语言,而是将其视为以下四门主要次语言组成的联邦......
  • [排序算法] 桶排序 (C++)
    桶排序解释桶排序思想桶排序是一种空间换取时间的排序方式,是非基于比较的。桶排序顾名思义,就是构建多个映射数据的桶,将数据放入桶内,对每个桶内元素进行单独排序。假设......