十二章 札记--C++ primer 之旅

基于MATLAB的太阳能光伏电力仿真,模拟每日太阳能发电,可视化功率曲线,并通过数值积分计算总能量输出。.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载
类成员: 可以使数据、 函数 或者 类型别名 typedef 定义的

所有成员必须在类的内部声明。

构造函数: 一般使用一个构造函数初始化列表 来初始化对象的数据成员。

                EX: Sales_item() : units_sold(0),  revenue(0.0) {} 

               构造函数初始化式只在构造函数的定义中而不是声明中指定。

注意: 省略初始化列表并在构造函数的函数体内对数据成员赋值是合法的。是赋值,不是初始化。
      
构造函数分两个阶段执行: 1) 初始化阶段;2)普通的计算阶段    注:计算阶段由构造函数函数体中的所有语句组成。

    注: 不管成员是否在构造函数初始化列表中显式初始化,类类型的数据成员总是在初始化阶段初始化。初始化发生在计算阶段开始之前。

    注: 有些成员必须在构造函数初始化列表中进行初始化。EX: 没有默认构造函数的类类型的成员,以及const或引用类型的成员。

初始化顺序:构造函数初始化列表仅指定用于初始化成员的值,并不指定这些初始化执行的次序。

注意: 通常,在默认构造函数中给成员提供的初始值应该指出该对象是空的。


函数成员: 类内部,声明成员函数是必需的,而定义成员函数则是可选的。在类内部定义的函数默认是inline 的。

const 成员不能改变其所操作的对象的数据成员。const 必须同时出现在声明和定义中。

访问标号实施抽象和封装:
     类型的数据抽象视图由其public 成员定义。
     private 封装了类型的实现细节。

具体类型和抽象类型: 并非所有的类型都必须是抽象的。标准库的pair 类就是一个具体类。具体类会暴露而非隐藏起实现细节。

inline 函数:     
     inline 成员函数的定义必须在调用该函数的每个源文件中是可见的。不在类定义体内定义的inline成员函数,其定义通常应放在有类定义的同一个头文件中。


类声明与类定义:

可以声明一个类而不定义它:EX: class Screen;
这种声明,有时成为前向声明,在程序中,引入了类类型的Screen。 在声明之后,定义之前,类Screen 是一个不完全类型。即已知Scree 是一个类型,但不知道包含哪些成员。

注意:
不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(不是定义) 使用该类型作为形参类型或返回类型的函数。不能定义该类型的对象。


为什么类的定义 以分号结束:
     因为类定义之后可以接一个对象定义列表。


this 指针的使用:
     当需要将一个对象作为整体应用而不是引用对象的一个成员时。 EX: 成员函数返回对调用该函数的对象的应用。 (对this 解引用,返回即可) 返回*this.

从const 成员函数 返回 *this
     在普通的非const 成员函数中, this 的类型是一个指向类类型的const指针。
     const 成员函数中 ,  this 的类型是一个指向const 类类型的const指针。 

注意: 不能从const成员函数 返回指向类对象的普通引用。const 成员函数只能返回 *this作为一个const 引用。

回顾: 指向const 对象的指针 或 const 引用对象都不能调用 类里面的非const 成员函数。

基于const 的重载:
     为了解决const 成员函数不能返回 指向类对象普通引用, 定义两个函数:一个是const ,一个是非const。 const 对象只能使用const 成员, 非const 对象可以使用任一成员,但非const版本是一个更好的匹配。


可变数据成员mutable:
     希望类的数据成员可以修改(甚至在const 成员函数内) ,这时 就应该声明为mutable
     可变数据成员永远都不能为const。


使用类的成员:
     定义类型的成员, typedef 定义的类型,使用 类名:: (作用域操作符)访问。

形参表和函数体处以类作用域:
     在定义于类外部的成员函数中,形参表和成员函数体都出现在成员名之后,这些都是在类作用域中定义的,所以可以不用限定而引用其他成员。
     

函数返回类型 不一定在 类作用域中:
     返回类型出现在成员名字前面。 如果函数在类定义体外定义,而且返回类型使用由类定义的类型,则必须使用完全限定名。


类的成员被屏蔽了,可以通过用类名来限定成员名或显示使用this 指针来使用。

全局对象被屏蔽了, 可以通过用全局作用域确定操作符来限定名字  EX:::对象名。


隐式类类型转换:

     可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。
   EX:  Sales_item (const std::string &book = ""): isbn(book), units_sold(0), revenue(0.0){}
          string 类型在某种特定的条件下就能隐式转成Sales_item 类型
     
抑制由构造函数定义的隐式转换:
     通过将构造函数声明为 explicit ,防止在需要隐式转换的上下文中使用构造函数。
     注意: explicit 关键之只能用于类内部的构造函数声明上。

为转换而显式使用构造函数:中止了隐式地使用构造函数。
               上面的例子可以 通过  Sales_item(null_book) // null_book 是string 类型  显式转换。



友元friend : 机制允许一个类将对其非公有成员的访问权授予指定的函数或类。
                       友元以关键字friend 开始,只能出现在类定义的内部,可以出现在类中的任何地方。通常,将友元声明放在类定义的开始或结尾。
 
友元可以是: 普通的非成员函数、其他类的成员函数、整个类。
                     使用其他类的成员函数: 函数名必须用该函数所属的类名字加以限定。


友元声明 与 作用域:
       友元声明将已命名的类或非成员函数引入到外围作用域中。此外,友元函数可以在类的内部定义,该函数的作用域扩展到包围该类定义的作用域。
      必须先定义包含成员函数的类,才能将该类的成员函数设为友元


类必须把重载函数集中的每一希望设为友元的函数都声明为友元。



static 类成员:
     每个static 数据成员是预类关联的对象,不与该类的对象相关联。

static 成员函数: 没有this形参, 可以直接访问所属类的static 成员,但不能直接使用非 static 成员。
                          在类外部定义static 成员时,无须重复指定。
                          static成员函数 不能声明为const  ;想下const 的原因就明了
                          static成员函数 不能声明为虚函数。

static 数据成员:必须在类定义体的外部定义(正好一次)。static 成员不是通过类构造函数进行初始化,而是在定义时进行初始化。 static 关键字只能用于类定义体内部的声明中,定义不能表示为static

整型 const static 成员:
     初始化式 是一个常量表达式, 整型 const static 数据成员就可以在类的定义体重进行初始化。 同时,该数据成员仍必须在类的定义体之外进行定义。

static 成员 不是类对象的组成部分:
     static 数据成员的类型可以是该成员所属的类类型。 非 static 成员被限定声明为其自身类对象的指针或引用。
     非static 数据成员不能用作默认实参。static 可以。
                        

使用类的static 成员:
     通过作用域操作符 从类直接调用static 成员, 或者通过对象、引用或指向该类类型对象的指针间接调用。


【电力负荷预测】项目介绍 MATLAB实现基于BO-Transformer-LSTM贝叶斯优化算法(BO)优化Transformer-LSTM组合模型进行居民用户多步电力负荷预测(含模型描述及部分示例 内容概要:本文介绍了一个基于BO-Transformer-LSTM的组合模型,用于实现居民用户多步电力负荷预测的完整项目实例。该模型融合Transformer的全局注意力机制与LSTM的局部时序记忆能力,构建能够捕捉长时依赖与周期性特征的深度学习架构,并引入贝叶斯优化(BO)自动搜索最优超参数组合,提升预测精度与训练效率。项目涵盖从原始数据清洗、特征工程、滑动窗口样本构建、模型设计到超参数优化、反归一化及多步误差评估的全流程,强调时间顺序划分以防止信息泄露,并通过周期编码、外生变量融合等方式增强数据表达能力。文中提供了详细的MATLAB代码示例,包括数据预处理、网络搭建、贝叶斯优化配置和预测结果评估等关键步骤。 适合人群:具备一定机器学习和时间序列分析基础,熟悉MATLAB编程环境,从事电力系统预测、智能电网、负荷管理等相关领域的研究人员、工程师及研究生。 使用场景及目标:①应用于居民级或多用户聚合负荷的短期至中期多步预测(如未来24小时);②服务于配电系统运行调度、需求响应基线设定、家庭能源管理系统优化、分布式能源协调控制等实际工程场景;③为科研提供可复现的深度学习+贝叶斯优化的技术路线参考。 阅读建议:此资源以实际项目为导向,建议读者结合提供的代码逐步实现并调试模型,重点关注数据质量控制、时间特征编码、组合网络结构设计与贝叶斯优化稳定性之间的协同关系,在实践中深入理解多步预测中的误差累积机制与超参数敏感性问题。 立即下载

相关推荐

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

aba 回文练习 -- 参考罗大神的

#include #include #include #include using namespace std; #define maxn 1024 #define parr(arr,n) printf(#arr":");for(int kk=0;kk int bufa[maxn],bufb[maxn],bufs[maxn],bufv[maxn]; int sa[m

lsff Code World 6748

PotPlayer自用皮肤

自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。

kmp 练习下

/* * ===================================================================================== * * Filename: kmp.cpp * * Description: * * Version: 1.0 * Created: 10/14/

lsff Code World 2290

2-shell及常用命令-续.pdf

2-shell及常用命令-续.pdf

SPSS(二)SPSS实现多因素方差分析模型(图文教程+数据集)

SPSS(二)SPSS实现多因素方差分析模型 单因素方差分析上一篇博客https://blog.youkuaiyun.com/LuYi_WeiLin/article/details/89917656已经介绍完毕 这篇博客我们主要来学习多因素方差分析 多因素方差分析,就是同时考虑若干个控制因素的情况下,分别分析它们的改变是否造成观察变量的显著变动 (多个自变量,一个因变量)自变量类型以分类变量为主也可以...

可乐联盟 6万+

初次邂逅句柄类 --C++ primer

句柄类存储和管理基类指针。 指针所指对象的类型可以变化,既能指向基类类型对象又可以指向派生类类型对象。 用户通过句柄类访问继承层次的操作 (virtual 函数) 设计考虑因素:        1)对任何保存指针的类一样,必须确定对复制控制的具体操作。包装了继承层次的句柄应该表现得像一个智能指针或者像一个值        2)句柄类决定句柄接口屏蔽还是不屏蔽继承层次。 如

lsff Code World 1859

centos 添加新硬盘,对根目录扩容

本地安装了虚拟机,系统为centos7,使用过程中,渐渐地发现磁盘容量不够用了,于是在虚拟机中新增了一块硬盘。 进入系统内查看: sdb是新增的硬盘,大小为40g。 接下来有两种方式,一种是普通方式直接挂载。https://blog.youkuaiyun.com/qq_39314099/article/details/106200322 这样的话只有在挂载点的目录下操作才能使用到这个新硬盘,不是很理想。 还有一种方式lvm,逻辑卷管理的方式。 LVM简单介绍: 它是 Linux 下对磁盘分区进行管

qq_39314099的博客 1万+

m_sort 归并排序(迭代)

#include #include #include using namespace std; typedef int element; void merge(element *list,element *sorted,int i,int m,int n) { int j=m+1,k=i; while(i if(list[i]  sorted[k++]=l

lsff Code World 1738

对西安交大轴承数据集XJTU-SY_Bearing_Datasets进行读取和处理:

故障诊断,对西安交大轴承数据集XJTU-SY_Bearing_Datasets进行读取和处理

qq_44757503的博客 6060

RK3566添加ffpeg【Buildroot系统】

有很多人都发现了RK3566系列的芯片是不可以直接使用ffmpeg官网源码的!会报错: Not a video capture device. /dev/video0: No such device 接下来我们就来解决这个问题!!

honmy18的博客 4069

十一章 札记--C++ primer 之旅

find 运算: 形参:两个迭代器,检查两个迭代器实参标记范围内的每一个元素。找到与给定值的元素,返回指向该元素的迭代器;如果没匹配元素,这返回第二个形参。 注意: 泛型算法从不执行容器操作,单独依赖迭代器和迭代器操作实现,算法基于迭代器及其操作实现,而并非基于容器操作。 泛型算法     头文件   泛化的算术算法 头文件 只读算法:

lsff Code World 1308

计算机毕设:线性回归 Xgboost LSTM 预测黄金价格实战 完整代码数据视频讲解 可直接运行

线性回归 Xgboost LSTM 预测黄金价格实战 完整代码数据视频讲解 可直接运行

1760

k_over 重叠字符串

#include #include #include #include using namespace std; #define maxn 1024 #define maxm 1024 int bufa[maxn],bufb[maxn],bufs[maxm],bufv[maxn]; int sa[maxn],height[maxn],rank[maxn];

lsff Code World 1207

用 SELECT FOR UPDATE 亲手制造典型数据库死锁——从 ABAP 视角揭秘 RDBMS 的锁争夺战

在日常 ABAP 开发中,多数人只在 ST22 里偶尔瞥见这行 dump,却对背后的原理知之甚少。本文借助社区前辈的经典实验,还原一个可复现的死锁现场,进一步讨论产生根因、检测手段与规避策略,并用真实业务案例串联起数据库、Open SQL 与 SAP NetWeaver 锁管理之间的逻辑链条。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 454

解决Jupyter Notebook中Plotly图表显示问题

摘要:在Jupyter Notebook中使用Plotly绘图时遇到图表无法显示的问题。通过分析发现Python 3.12版本与Jupyter存在兼容性问题。解决方案是将Python降级到3.11版本,重新创建虚拟环境后图表正常显示。这表明版本兼容性对数据可视化工具至关重要,环境配置检查是解决问题的关键步骤。该案例为遇到类似问题的开发者提供了参考方案。

m0_74337424的博客 124

二章 札记 --C++ primer 之旅

实习告一段落,翻开C++primer 准备苦逼的重温C++ 。以下是一些 从书上抄下来的笔记。 测试: -10u 是什么类型? -10u 类型是unsigned int  使用 typeid(-10u).name() 测试的 变量的初始化: 1、复制初始化: int ival=1024; 2、直接初始化: int ival(1024); 直接初始化语法更灵活且效率更高。

lsff Code World 817

双目深度相机--10.双目视觉的主要步骤讲解分析

双目视觉技术通过模拟人眼原理,利用两个相机从不同视角采集图像,实现三维坐标计算。其核心流程包括:1)系统标定,消除相机畸变并建立坐标映射关系;2)图像同步采集与预处理;3)立体匹配,寻找左右图像对应点;4)基于视差图的深度计算;5)三维重建生成点云或网格模型;6)结果应用如目标测距、三维建模等。关键技术难点在于精确标定和准确匹配,这两步直接影响最终深度计算的精度。该技术广泛应用于自动驾驶、工业检测、VR等领域,实现了从二维图像到三维空间的精准转换。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 625

七章 札记--C++ primer 之旅

const 形参:      如果将函数形参定义为非引用的const类型,EX: void fcn(const int i) {};  则不能修改实参的局部副本。   注意:  void fcn(const int i) {}; 和  void fcn(int i) {}; 编译的结果是一样的。 规则: 如果使用引用实参的唯一目的是避免复制实参,则应该将实参定义为const 引用

lsff Code World 752

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C++ new 和 delete 的重载

发现:类里面有几种成员函数是没有this指针的,也就是访问不了类的成员  构造函数:有; 说明其实对象真正的初始化就是在初始化类表  析构函数:有; 析构函数在最后的时刻才把对象空间释放  普通函数:有  static函数: 没有,但能访问静态成员  重载的 new new[]成员函数: 没有, 因为对象的产生是先有空间在调用构造函数,new就是完成前个步骤的工作  重载的 delet

lsff Code World 704

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

十五章 札记--C++ primer 之旅

C++动态绑定的实现      在C++中,通过基类的引用(或指针)调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,这是动态绑定的关键。 用引用(或指针)调用的虚函数在运行时确定,被调用的函数是引用(或指针)所指向对象的实际类型所定义的。 虚函数: 除了构造函数外,任意非static 成员函数都可以是虚函数。保留字virtu

lsff Code World 648

十六章 札记--C++ primer 之旅

模板定义: 1、函数模板:             模板定义以关键字 template 开始,后接尖括号括起的模板形参表。                 inline 函数模板, inline 说明符放在模板形参表后面,返回类型之前。     2、定义类模板:            必须以关键字template开头, 后接模板形参类型表。

lsff Code World 645

十四章 札记--C++ primer 之旅

重载运算符:具有特殊名称的函数,operator + 操作符符号 ,具有返回类型和形参表。注意: 重载操作符必须具有至少一个类类型或枚举类型的操作数。大多数重载操作符可以定义为普通非成员函数或类的成员函数。作为类成员的重载函数,形参比操作数数目少1,隐含的this 形参,限定为第一个操作数。规则:一般将算术和关系操作符定义为非成员函数,而将赋值操作符定义为成员操作符重载和友元关系:     操作符

lsff Code World 615

十三章 札记--C++ primer 之旅

复制构造函数:       定义: 一种特殊构造函数,具有单个形参,该形参(常用const修饰)是对该类类型的引用。      调用: 当定义一个新对象并用一个同类型的对象对它进行初始化时,将显式使用复制构造函数。 当将该类型的对象传递给函数或从函数返回该类型的对象是,将隐式使用复制构造函数。 析构函数:      定义: 析构函数可用于释放对象在构造或在对象的生命期中所获得

lsff Code World 606

八章 札记--C++ primer 之旅

IO 对象 不可复制或赋值 形参或返回类型不能是流类型,可以通过传递或返回指向该对象的指针或引用 来传递和返回IO 对象。 所有流对象都包含一个条件状态成员,类型为iostate 类型 流的状态由 bad , fail ,eof 和 good 操作解释,如果 bad,fail 或者 eof 任意一个为 true ,则检查流本身将显示该流处于错误状态。反之,如果三个

lsff Code World 564
上一篇: 十一章 札记--C++ primer 之旅
下一篇: 十三章 札记--C++ primer 之旅
lsff01
博客等级 码龄14年 4粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值