小河学习日记--C与C++不同之处出

本文详细对比了C与C++在内存管理、static关键字、const关键字及void*指针方面的核心不同。C++在内存管理上引入new/delete操作符,能够自动调用构造和析构函数;static关键字在C++中可用于声明静态成员变量和函数;const在C++中提供了更严格的类型保护;void*在C++中需要类型转换以增强类型安全性。

C与C++的不同之处(只讲区别,C++有而C没有的,请听下回分解)

一.内存管理
1.C使用的时malloc/free,malloc再分配内存时是一页一页的分配的,当使用malloc时操作系统会直接批发32页内存,所以使用malloc时,如果没有后续在堆内存上的操作了,是可以越界的。
例如如:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int* p=malloc(4);
*p=4;
*(p+1)=5;
printf("%d\n%d",p,(p+1));
}
在这里插入图片描述
这样就是可以访问成功了。另外使用malloc会导致很多内存碎片,这是无法避免的
2.new会自动计算类型所需的字节数,并从堆中分配相应的内存,返回内存的首地址,而malloc不会。
3.new/delete会自动调用类的构造函数和析构函数
4.new申请的内存会在内存前一个字节记录这块内存所存放数据的数量
二.static
c++完美的继承了c在static上的所有用法。并对其做出了扩展,
C++中的static可以运用到成员变量和成员函数上面,将其编程静态成员变量和静态成员函数
静态成员需要在类内申明,但必须在类外定义和初始化,和成员函数一样需要加 "类名::"限定符表示它属于那个类,但不需要加static
#include
#include
using namespace std;

class User
{
static char name[20];//类中的申明
char pass[20];
public:
User(const char* name,const char* pass)
{
strcpy(this->name,name);
strcpy(this->pass,pass);

}
void show()
{
    cout<<name<<" "<<pass<<endl;
}

};
char User::name;//类外定义
int main()
{
User user(“hehe”,“z234”);
}

三.const
C++对const的检查更加严格,而且被const修饰过的变量,编译器只会对其取一次的值,而C不会。所以const在c++中更加安全
四.void*
void*在C中是一个万能指针,可以对任意变量赋值,而在C++中不行,需要强制转换,因为C++对类型的检查更加严格

MATLAB代码实现了一个基于多种智能优化算法优化RBF神经网络的回归预测模型,其核心是通过智能优化算法自动寻找最优的RBF扩展参数(spread),以提升预测精度。 1.主要功能 多算法优化RBF网络:使用多种智能优化算法优化RBF神经网络的核心参数spread。 回归预测:对输入特征进行回归预测,适用于连续值输问题。 性能对比:对比不同优化算法在训练集和测试集上的预测性能,绘制适应度曲线、预测对比图、误差指标柱状图等。 2.算法步骤 数据准备:导入数据,随机打乱,划分训练集和测试集(默认7:3)。 数据归一化:使用mapminmax将输入和输归一化到[0,1]区间。 标准RBF建模:使用固定spread=100建立基准RBF模型。 智能优化循环: 调用优化算法(从指定文件夹中读取算法文件)优化spread参数。 使用优化后的spread重新训练RBF网络。 评估预测结果,保存性能指标。 结果可视化: 绘制适应度曲线、训练集/测试集预测对比图。 绘制误差指标(MAE、RMSE、MAPE、MBE)柱状图。 十种智能优化算法分别是: GWO:灰狼算法 HBA:蜜獾算法 IAO:改进天鹰优化算法,改进①:Tent混沌映射种群初始化,改进②:自适应权重 MFO:飞蛾扑火算法 MPA:海洋捕食者算法 NGO:北方苍鹰算法 OOA:鱼鹰优化算法 RTH:红尾鹰算法 WOA:鲸鱼算法 ZOA:斑马算法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值