news 2025/12/29 8:25:32

类的成员类型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
类的成员类型

1、成员类型是定义在类内部的类型,包括:typedef 别名;using 别名;enum 枚举;class 嵌套类;struct 嵌套结构体。

#include <vector> #include <list> #include <string> using namespace std; class MyClass { enum Status { Idle, Running, Stopped }; //typedef成员类型别名 typedef vector<int> IntVector; //using成员类型别名 using StringList = list<string>; //嵌套类 class NestedClass { public: void nestedMethod() {} }; //嵌套结构体 struct Point { int x; int y; }; void useMemberTypes() { Status status = Running; IntVector vec; NestedClass nestedClass; Point p = { 1,2 }; } private: Status currentStatus; Point position; };

2、在类外使用成员类型时,需要作用域运算符::,而且也遵循访问权限,在类外只能访问public的成员类型,子类可以访问父类的protected成员类型。

class Database { public: enum ConnetStatus { Disconnected, Connecting, Connected, Error }; class Query { public: enum Result {Succ,Failure,Timeout}; }; }; int main() { Database::ConnetStatus connectStatus = Database::ConnetStatus::Connected; Database::Query::Result result = Database::Query::Result::Succ; return 0; }

3、为什么需要成员类型?

1、封装和命名空间管理,放在类内部的的成员类型,避免了全局命名冲突;

2、在类内部的成员类型也有访问权限,私有访问权限对实现细节进行隐藏;

3、模板类中的类型别名,在STL中经常使用,type_traits

template<typename T> class Container { public: using value_type = T; using reference_type = T&; using const_reference = const T&; using size_type = std::size_t; class iterator//嵌套的迭代器类型 { //... }; void push_back(const value_type& value); }; //使用 Container<int>::value_type x = 42;

总结:

1、成员类型属于类,他们是类的一部分,不是全局的;

2、访问需要作用域:外部使用时,需要加ClassName::

3、访问权限:和其他成员一样,有public/protected/private控制

4、主要用途:组织相关类型;避免命名冲突;隐藏实现细节;提供模板元编程支持;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/23 18:29:47

如何使用苏培Modbus TCP总线网关与西门子1200系列PLC通讯

01概述Modbus TCP通讯协议是由Modicon公司&#xff08;现已经为施耐德公司并购&#xff0c;成为其旗下的子品牌&#xff09;于1979年发明的&#xff0c;是全球最早用于工业现场的总线规约。Modbus通信协议采用的是主从通信模式&#xff08;即Master/Slave通信模式&#xff09;&…

作者头像 李华
网站建设 2025/12/25 5:16:24

python基于小程序的个人运动健康评估管理系统_70sku6nu_Pycharm vue flask

目录已开发项目效果实现截图开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 python基于小程序的个人运动健康评估管理系统_70sku6nu_Pycha…

作者头像 李华
网站建设 2025/12/23 18:15:27

探寻当代顶尖堪舆大师:甄别真才实学之法

探寻当代顶尖堪舆大师&#xff1a;甄别真才实学之法在当下&#xff0c;若你不懂堪舆&#xff0c;面临重要抉择时&#xff0c;自然想寻得一位顶尖的周易玄学、易经命理堪舆大师来助力选择与安排堪舆布局。然而&#xff0c;如何找到有真本事的堪舆师&#xff0c;怎样请到著名堪舆…

作者头像 李华