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

织梦做导航网站百度官网app下载安装

织梦做导航网站,百度官网app下载安装,大学生app开发经费预算表,甜品网站开发需求分析聚合类 (1)What(什么是聚合类) 本质是一个自定义类型的数据结构(结构体或类),但聚合类有以下特性: 所有的成员都是public没有任何构造函数没有基类类内部没有初始值 (2)Why(聚合类的作用&…

聚合类

(1)What(什么是聚合类)

本质是一个自定义类型的数据结构(结构体或类),但聚合类有以下特性:

  • 所有的成员都是public
  • 没有任何构造函数
  • 没有基类
  • 类内部没有初始值

(2)Why(聚合类的作用)

主要目的是提供一种简单且高效的方式来组织和管理数据。它们通常用于表示简单的 数据结构,如结构体或记录类型,而不涉及复杂的行为和操作

(3)How(如何定义和使用聚合类)

struct Point{double dx;double dy;
};
Point pt01 = {1.1, 2.2};
Point pt02{3.3, 4.4};

嵌套类

(1)What(什么是嵌套类)

定义或声明在类内部的类,它可以访问外部类的私有成员,并能在外部类作用域内使用

(2)Why (嵌套类的作用)

封装和隐藏:将嵌套类进行私有化,实现封装和隐藏
组织和结构化:将一个类嵌套到另一个类,可以清晰的表达两个类之间的关系
实现设计模式:如工厂模式、建造者模式等
命名空间嵌套:有助于避免命名空间冲突

(3)How(如何使用嵌套类)

class Student 
{
private:string name;int age;
...
}
class Grade
{
private:Student student; //Student在类Grade中声明,Student属于类Grade的嵌套类
...
}

局部类

(1)What(什么是局部类)

定义在函数内部或代码块中的类被称为局部类,它的作用域是该函数内部或代码块中

局部类具有以下特性:

  • 不允许存在静态的成员
  • 只允许访问外层作用域的静态变量、枚举和类型名
  • 可以访问全局变量(使用:: ):😃

(2)Why(局部类的作用)

  • 封装:隐藏细节
  • 避免命名冲突:由于只对作用域可见,有助于避免命名冲突,提供更好的隔离性
  • 增加代码的可维护性

union类

(1)What(什么是union类)

本质是一种类,这种类有以下特点:union类可以包含多个成员,但同一时刻只能使用其中一个成员,当其中一个成员被赋值时,其它成员就会变成未定义的状态

(2)Why(union类的作用)

节省内存:当需要存储多种内存数据,但是每次只使用其中一种时
灵活处理异构数据:提供了一种灵活的数据结构,在无需定义多个变量或复杂数据结构的情况下存储和操作不同类型的数据

(3)How(如何使用union类)

struct Rectangle{ float height; float width; }; 
struct Circle { float radius; };
// 定义 union 类 
union Shape {Rectangle rect; Circle circle;
};
float calculateArea(const Shape &shape, string mode) 
{ if (mode == "circle") return 3.1415926 * shape.circle.radius * shape.circle.radius; if (mode == "rect")  return shape.rect.width * shape.rect.height;return 0;
}
// 创建 union 对象 Shape shape;
string mode = "circle"; 
shape.circle.radius = 5;
cout << shape.rect.width << "," << shape.rect.height << endl; //此处会报错
std::cout << "圆的面积:" << calculateArea(shape, mode) << std::endl; // 打印:78.5398 
mode = "rect";
shape.rect.height = 4; 
shape.rect.width = 6;
std::cout << "矩形的面积:" << calculateArea(shape, mode) << std::endl; // 打印:24

(4)匿名的union类

A.What(什么是匿名的union类)

本质:一个union类,它具有以下特性

  • 一旦定义了匿名的union类,编译器就会为它创建一个未命名的对象
  • 作用域内能够访问大匿名union类的所有成员
  • 匿名的union类中的成员必须是public的
  • 匿名的union类中不能定义成员函数,只能作纯数据的结构体使用

B.How(如何使用union类)

class UnionBaseType
{
private: enum {INT, DOUBLE, CHAR, STRING } tp; // 通过匿名枚举类型定义一个变量 tp union {int ival; double dval; string sval; }; // 外层作用域可直接访问匿名 union 中的成员 
public:// 默认构造函数 UnionBaseType() : tp(INT), ival(0) {} // 拷贝构造函数UnionBaseType(const UnionBaseType &obj){tp = obj.tp; copyUnion(obj);}~UnionBaseType(){if (tp == STRING) sval.~string(); }void copyUnion(const UnionBaseType &obj){switch (obj.tp){case UnionBaseType::INT: ival = obj.ival; break; case UnionBaseType::DOUBLE: dval = obj.dval; break; case UnionBaseType::STRING: new (&sval) string(obj.sval); break;// 实现对对象的拷贝 default: break;} // 对 int 成员进行赋值 UnionBaseType &operator=(int ival_) {if (tp == STRING) sval.~string(); tp = UnionBaseType::INT; ival = ival_; return *this;}// 对 double 成员进行赋值 UnionBaseType &operator=(double dval_) {if (tp == STRING) sval.~string();tp = UnionBaseType::DOUBLE; dval = dval_; return *this;}// 对 string 成员进行赋值 UnionBaseType &operator=(const string &sval_) {if (tp == STRING) sval = sval_;else new (&sval) string(sval_); tp = UnionBaseType::STRING; return *this;}// 展示信息 void show() const{if (tp == INT) cout << ival << endl; if (tp == DOUBLE) cout << dval << endl; if (tp == CHAR) cout << cval << endl; if (tp == STRING) cout << sval << endl;}
}

================================================================================

C++知识点总结全系列文章索引:
【C++知识点总结全系列 (01)】:数据类型、数据类型转换和变量
【C++知识点总结全系列 (02)】:C++中的语句、运算符和表达式详细总结
【C++知识点总结全系列 (03)】:函数(函数参数传递、可变参数、函数返回值等详细介绍)
【C++知识点总结全系列 (04)】:C++类的详细总结与分析
【C++知识点总结全系列 (05)】:IO 类的详细总结和分析
【C++知识点总结全系列 (06)】:STL六大组件详细总结与分析- 配置器、容器、迭代器、适配器、算法和仿函数

【C++知识点总结全系列 (07)】:模板与泛型编程详细总结与分析
【C++知识点总结全系列 (08)】:面向对象编程OOP

http://www.khdw.cn/news/20323.html

相关文章:

  • 彩票网站制作开发千锋教育培训机构地址
  • 襄阳万家灯火网站建设河北百度竞价优化
  • 最权威的公文写作网站企业软文营销发布平台
  • 天津高端网站建设公司沪深300指数基金排名
  • 号号网站开发天津seo排名效果好
  • 视频网站建设需要多少钱国家新闻最新消息今天
  • 做网站样本电销好做吗关键词app
  • grimhelm.wordpress广州seo黑帽培训
  • 有什么网站是做批发的视频号视频下载助手app
  • wordpress模板左上角的logo换成自己的优化法治化营商环境
  • 新沂微网站开发如何做一个自己的网站呢
  • 怎么做付费网站企业信息查询
  • 基础微网站开发代理怎么做网络平台
  • 网站搭建需要服务器吗市场营销培训课程
  • 充值网站怎么做什么网站可以发布广告
  • 南京网站搭建公司怎样建网站赚钱
  • 可做笔记的阅读网站东莞优化网站制作
  • 建网站 主流软件广州seo关键字推广
  • 网站设计的含义疫情最新政策最新消息
  • 微信公众号做头图的网站宁波网站推广网站优化
  • 南通住房和城乡建设部网站新手怎么做网页
  • 中国唯一无疫情城市河北网站seo外包
  • 构建html5博客网站百度账号登录官网
  • 怎么把自己做的网站宣传推广方式有哪些
  • wordpress英语转换成汉文seo网站制作优化
  • 做网站的产品图片有什么引流客源的软件
  • 网站开发哪一门语言更快搜索引擎关键词怎么优化
  • 重庆企业网站推广方法网站注册页面
  • 深圳很多90后做虚假彩票网站诈骗最好的搜索引擎排名
  • 东莞网站设计哪家强竞价推广是什么工作