C++学习笔记(构造函数)

本文介绍了C++中构造函数的概念及使用方法,包括构造函数如何实现对象初始化、构造函数的重载以及在类内和类外定义构造函数的方式。通过示例展示了不同构造函数的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们通常在定义变量的时候会对其初始化,同样,当我们定义了对象之后,也希望对对象进行初始化,对其赋值。但是我们知道类中的数据成员是私有的,不能像普通变量那样对其赋值。那么该怎样对类的对象初始化呢?对此,我们先给出如下的定义,然后再一步步解释程序的含义。

#include<iostream>
using namespace std;
class Test
{

public:

Test( )//构造函数1

{

    num=0;

}

Test(int Num)//构造函数2

{

    num=Num;

}

private://数据成员
int num;
};
int main()
{

Test t1;//创建对象t1,并调用构造函数1为t1.num赋值为0

        Test t2(10);//创建对象t2,并调用构造函数2为t2.num赋值为10

}

在主函数中我们首先创建了t1对象,为了实现在创建对象的时候对其初始化,C++提供了专门用于对对象初始化的函数——构造函数。构造函数的函数名与类名相同,而且该函数没有返回值(如上的构造函数1和构造函数2)。程序创建对象的时候,就会自动调用构造函数对对象初始化,因此,t1对象会被初始化为0(调用构造函数1)。主程序的第二行创建了另外一个对象t2,t2对象会被初始化为10(调用构造函数2)。由此,我们可以知道,构造函数的个数可以不止一个(函数的重载)。当然,我们可以在类中对函数进行声明,在类外对函数进行定义,但是,如果在类外对函数定义时,就要指出该函数属于哪个类(复杂程序不止一个类)。如下为在类外定义函数的方法:

#include<iostream>
using namespace std;
class Test
{
public:
Test();//构造函数1
Test(int Num);//构造函数2
private://数据成员
int num;
};
Test::Test()//类外定义构造函数1
{
num=0;
}
Test::Test(int Num)//类外定义构造函数2
{
num=Num;
}
void main()
{
Test t1;//调用构造函数1
Test t2(10);//调用构造函数2

}

在类外定义构造函数的时候通过::来指明函数属于哪个类。通常,假如我们不编写构造函数,系统会自动调用默认的构造函数,默认的构造函数不会做任何工作。为了验证t1对象调用构造函数1,t2对象调用构造函数2,我们将程序改为如下的形式:

#include<iostream>
using namespace std;
class Test
{
public:
Test();
Test(int Num);
private:
int num;
};
Test::Test()
{
num=0;
cout<<"construct function 1"<<endl;
}
Test::Test(int Num)
{
num=Num;
cout<<"construct function 2"<<endl;
}
void main()
{
Test t1;
Test t2(10);

}

然后再vc上运行该程序,结果如下:


内容概要:该论文研究增程式电动汽车(REEV)的能量管理策略,针对现有优化策略实时性差的问题,提出基于工况识别的自适应等效燃油消耗最小策略(A-ECMS)。首先建立整车Simulink模型和基于规则的策略;然后研究动态规划(DP)算法和等效燃油最小策略;接着通过聚类分析将道路工况分为四类,并设计工况识别算法;最后开发基于工况识别的A-ECMS,通过高德地图预判工况类型并自适应调整SOC分配。仿真显示该策略比规则策略节油8%,比简单SOC规划策略节油2%,并通过硬件在环实验验证了实时可行性。 适合人群:具备一定编程基础,特别是对电动汽车能量管理策略有兴趣的研发人员和技术爱好者。 使用场景及目标:①理解增程式电动汽车能量管理策略的基本原理;②掌握动态规划算法和等效燃油消耗最小策略的应用;③学习工况识别算法的设计和实现;④了解基于工况识别的A-ECMS策略的具体实现及其优化效果。 其他说明:此资源不仅提供了详细的MATLAB/Simulink代码实现,还深入分析了各算法的原理和应用场景,适合用于学术研究和工业实践。在学习过程中,建议结合代码调试和实际数据进行实践,以便更好地理解策略的优化效果。此外,论文还探讨了未来的研究方向,如深度学习替代聚类、多目标优化以及V2X集成等,为后续研究提供了思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值