C++ 学习 ::【基础篇:08】:C++ 中 struct 结构体的认识【面试考点:C 与 C++ 中结构体的区别】
本系列 C++ 相关文章 仅为笔者学习笔记记录,用自己的理解记录学习!C++ 学习系列将分为三个阶段:基础篇、STL 篇、高阶数据结构与算法篇,相关重点内容如下:
- 基础篇:类与对象(涉及C++的三大特性等);
- STL 篇:学习使用 C++ 提供的 STL 相关库;
- 高阶数据结构与算法篇: 手动实现自己的 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++ 中结构体内:
- 可以声明并初始化变量!
- 可以声明定义函数!
- 实例化时可以省略 struct 关键字!
- 成员访问方式与 C 语言相同!
- 结构体内同样有访问限制符,默认为:public(公有:即外部声明的变量可以直接通过成员访问的方式访问!)
- 可以包含静态成员。
补充:关于访问限制符的问题,在类中会说明,此处只需直到分为三种:
- 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 语言 |
---|---|---|
内部初始化变量 | 是 | 否 |
内部声明定义函数 | 是 | 否 |
外部访问限制 | 是 | 否 |
是否可继承 | 是 | 否 |
是否支持静态成员 | 是 | 否 |