网络推广网站怎么做,wordpress插件卡,中国建设银行网站客户注册码,wordpress args聚合类
(1)What#xff08;什么是聚合类#xff09; 本质是一个自定义类型的数据结构#xff08;结构体或类#xff09;#xff0c;但聚合类有以下特性#xff1a; 所有的成员都是public没有任何构造函数没有基类类内部没有初始值
(2)Why#xff08;聚合类的作用…聚合类
(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)Whyunion类的作用 节省内存当需要存储多种内存数据但是每次只使用其中一种时 灵活处理异构数据提供了一种灵活的数据结构在无需定义多个变量或复杂数据结构的情况下存储和操作不同类型的数据 (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