笔记:第三次课堂

这篇博客探讨了C++中的类和对象,重点在于拷贝构造函数的使用,常量成员的声明与初始化,以及静态成员的功能和统计类实例数量的应用。通过示例代码解释了如何创建和使用常对象以及静态成员的初始化。此外,还讨论了指针与常量的关系,展示了如何通过指针操作常量和变量。
#include<iostream>
#include<cstring>

using namespace std;

class Person{

public:
    /*函数声明*/
    Person(string name="", int id=0);//{
//        _name = name;
//        _id = id;
//    }
    void show() const;//{
////        cout<<"Name:"<<_name<<endl;
////        cout<<"ID  :"<<_id<<endl;
//    }
    int getnumberofpersons(){
        return numberOfPersons;
    }
    Person(const Person&another):_id(another._id+1){
        _name = another._name;
        numberOfPersons++;
        cout<<"the "<<numberOfPersons<<" is copied.\n";
    }
    ~Person(){
        numberOfPersons--;
    }


private:
    string _name;
    const int _id;/*限定常量,称为常数据成员,一旦给值不在更改,不能通过普通的函数成员修改*/
    static int numberOfPersons;
};
int Person::numberOfPersons = 0;
inline void Person::show() const{/*若函数没有修改变量,则可以定义为常函数。即使数据不是常数据,在常函数内也无法修改。常函数和不是常函数的函数也能构成重载。*/
/*重载两种方式,参数表,常函数和非常函数*/
    cout<<_name<<" "<<_id<<endl;
}
Person::Person(string name,const int id):_id(id){/*在类之外,函数定义。常函数成员的初始化不能放在函数内,常成员函数的初始化放在类的初始化函数中。*/
                                    /*:_id(id)成员初始化列表,常数据之能这样,其他不仅可以这样,也可以在函数内初始化*/
    /*统计类的使用次数*/
    numberOfPersons++;//统计类的使用次数
    _name = name;
//    _id = id;

}
int main()
{

//    string name;
//    int id;
//    cin>>name;
//    cin>>id;
//    Person p1(name,id);
//    Person p2(name,id);
//    p2.show();
//    p1.show();

//    int i;
//    cin>>i;
//    /*但如此可以改变*/
//    const double pi=3.14 * i;/*不可变变量*/
//    cout<<pi<<endl;
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------*/

    int a = 10;
    /*const与 * 的位置决定我们定义了什么东西,const与int的位置无关*/
    const int *p;/*p指向的是个常数,可以改变指向变量的地址,不能改变指向变量的值*/
    int const *q;/*与p同理*/
    int *const r = &a;
    /*表示r本身是个常数,不能改变指向变量的地址,可以改变r指向的变量的值*/
    p = &a;
    q = &a;
    //r = &a;
    /*只能在定义时对r附初值,如不则会报错r未初始化,因为r本身是一个常量,若让r指向a,则应改为 int *const r = &a;*/
/*试图去修改a的值*/
    //a = 20;
    //*p = 20;
    /*不能通过p改变a,p把它指向的东西认为了常数,与a是不是常数无关,p与q同理。*/

    //*r = 50;
    //int b=50;
    //p = &b;
    /*可以改变p q指向谁,但不能改变p q指向的东西*/
    cout<<*p<<" "<<*q<<" "<<*r<<endl;/*报错r未初始化*/
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------*/
    /*常成员函数谁都能用,但常对象只能调用常成员函数*/
    /*常对象*/
    const Person p5("lisi",324);
    /*常对象只能调用常成员函数*/
    p5.show();
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------*/
    /*无对象直接使用*/
    //cout<<Person::numberOfPersons<<endl//无对象直接使用
    Person p2("wang",123);
    cout<<p2.getnumberofpersons()<<endl;
/*-----------------------------------------------------------------------------------------------------*/
    Person p1("zhang",1);
    /*拷贝构造函数:用已经存在的对象初始化新的对象,c++会帮我们实现默认的拷贝构造函数*/
    Person p3(p1);
    p3.show();

}
/*-----------------------------------------------------------------------------------------------------*/
 /*静态成员又称为类成员,静态成员是属于整个类的,静态成员在类之间是共享*/
    /*用途:
            1. 定义类的常数
            2. 统计这个类产生了多少个对象
    初始化:在类的定义体之外初始化
            */

内容概要:本文详细介绍了一种基于Simulink的表贴式永磁同步电机(SPMSM)有限控制集模型预测电流控制(FCS-MPCC)仿真系统。通过构建PMSM数学模型、坐标变换、MPC控制器、SVPWM调制等模块,实现了对电机定子电流的高精度跟踪控制,具备快速动态响应和低稳态误差的特点。文中提供了完整的仿真建模步骤、关键参数设置、核心MATLAB函数代码及仿真结果分析,涵盖转速、电流、转矩和三相电流波形,验证了MPC控制策略在动态性能、稳态精度和抗负载扰动方面的优越性,并提出了参数自整定、加权代价函数、模型预测转矩控制和弱磁扩速等优化方向。; 适合人群:自动化、电气工程及其相关专业本科生、研究生,以及从事电机控制算法研究与仿真的工程技术人员;具备一定的电机原理、自动控制理论和Simulink仿真基础者更佳; 使用场景及目标:①用于永磁同步电机模型预测控制的教学演示、课程设计或毕业设计项目;②作为电机先进控制算法(如MPC、MPTC)的仿真验证平台;③支撑科研中对控制性能优化(如动态响应、抗干扰能力)的研究需求; 阅读建议:建议读者结合Simulink环境动手搭建模型,深入理解各模块间的信号流向与控制逻辑,重点掌握预测模型构建、代价函数设计与开关状态选择机制,并可通过修改电机参数或控制策略进行拓展实验,以增强实践与创新能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值