当前位置: 首页 > news >正文

C++ 学习 ::【基础篇:08】:C++ 中 struct 结构体的认识【面试考点:C 与 C++ 中结构体的区别】

本系列 C++ 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C++ 学习系列将分为三个阶段:基础篇、STL 篇、高阶数据结构与算法篇,相关重点内容如下:

  1. 基础篇类与对象(涉及C++的三大特性等);
  2. STL 篇学习使用 C++ 提供的 STL 相关库
  3. 高阶数据结构与算法篇手动实现自己的 STL 库设计实现高阶数据结构,如 B树、B+树、红黑树等。

学习集:

  • C++ 入门到入土!!!学习合集
  • Linux 从命令到网络再到内核!学习合集

本期内容:C++ 中 struct 结构体的认识【面试考点:C 与 C++ 中结构体的区别】


目录:
1. C++ 中的 struct 的认识
2. C++ 中的 struct 基本使用
3. C 与 C++ 中结构体的区别


【 C++学习合集链接 】


1. C++ 中的 struct 的特点

简而言之,C++ 中的 struct 可以兼容 C 语言的用法!同时有新增的特性!


C++ 中结构体内:

  1. 可以声明并初始化变量
  2. 可以声明定义函数!
  3. 实例化时可以省略 struct 关键字!
  4. 成员访问方式与 C 语言相同!
  5. 结构体内同样有访问限制符,默认为:public(公有:即外部声明的变量可以直接通过成员访问的方式访问!)
  6. 可以包含静态成员。

补充:关于访问限制符的问题,在类中会说明,此处只需直到分为三种:

  • public:公有属性(外部可以直接访问,一般成员函数都是公有的)
  • protected:保护属性(外部不能直接访问)
  • private:私有属性(外部不能直接访问)
  • 访问限制是外部对结构体/类内部成员的访问限制,结构体/类内部无访问限制约束!

2. C++ 中的 struct 基本使用

如下使用 C++ struct 简单设计栈(不实现)

#include<iostream>
using std::cout;
using std::endl;typedef int DataType;struct Stack{// 默认访问限制为:公有// 定义成员变量DataType* _stack;size_t _capacity = 4;		// 支持初始化变量size_t _size = 0;// 定义成员方法void Init(){...}void Push(const DataType& data){...}...
};int main(){Stack stk;		// 可以省略 struct 关键字stk.Init();return 0;
}

3. C 与 C++ 中结构体的区别

特性C++C 语言
内部初始化变量
内部声明定义函数
外部访问限制
是否可继承
是否支持静态成员

http://www.lryc.cn/news/91599.html

相关文章:

  • Electron开发:打包和发布 Electron 应用
  • 【每日一题Day222】LC1110删点成林 | dfs后序
  • [ChatGPT] 从 GPT-3.5 到 GPT-5 的进化之路 | ChatGPT和程序员 : 协作 or 取代
  • 6.4 GDP调试多进程程序
  • TDengine 时序数据的保留策略
  • Java-多线程解析1
  • PHP 判断用户当前坐标是否在电子围栏内
  • Java版本工程管理系统源码企业工程项目管理系统简介
  • 高速缓存(cache)的原理: 了解计算机架构与性能优化
  • 【Vue3+TS项目】硅谷甄选day04--顶部组件搭建+面包屑+路由鉴权
  • 某oa 11.10 未授权任意文件上传
  • Grounded Language-Image Pre-training(论文翻译)
  • 设计模式-行为型模式(模板方法、策略、观察者、迭代器、责任链、命令、状态、备忘录、访问者、中介者、解释器)
  • 全面探讨 Spring Boot 的自动装配机制
  • 河道水位监测:河道水位监测用什么设备
  • 嵌入式系统中u-boot和bootloader到底有什么区别
  • 实验14:20211030 1+X 中级实操考试(id:2498)
  • (字符串 ) 剑指 Offer 58 - II. 左旋转字符串 ——【Leetcode每日一题】
  • EPICS编程
  • 17:00面试,还没10分钟就出来了,问的实在是太...
  • docker都有那些工具,及工具面试题
  • LAMP网站应用架构
  • C++虚函数virtual(动态多态)(纯虚函数)
  • 【Java 接口】接口(Interface)的定义,implements关键字,接口实现方法案例
  • 解决Vmware上的kali找不到virtualbox上的靶机的问题
  • 查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在
  • 华为OD机试真题 Java 实现【表示数字】【牛客练习题】
  • 使用Python进行接口性能测试:从入门到高级
  • sed编辑器
  • 深入理解深度学习——正则化(Regularization):稀疏表示