#include <iostream> using namespace std; #include <QString> #include <QDebug> class Base { public: Base(){cout<<"base()"<<endl;} Base(QString a):m_name(a){cout<<"base(QString a)"<<endl;} protected: QString m_name; //设备名 }; class SerialDev : public Base { public: /*基类构可以造缺省,默认调用基类无参构造*/ SerialDev(){cout<<"SerialDev()"<<endl;} //无参构造 SerialDev(int a):m_boaudrate(a){} /*基类构造带参,必须写在初始化列表*/ SerialDev(QString a,int b):Base(a),m_boaudrate(b){} void showdata() { qDebug()<<"m_boaudrate="<<m_boaudrate; qDebug()<<"m_name="<<m_name; } protected: int m_boaudrate; //波特率 }; class ModbusDev : public SerialDev { public: /*基类构可以造缺省,默认调用基类无参构造*/ ModbusDev(QString a):m_SlaveAddr(a){} /*基类构造带参,必须写在初始化列表*/ ModbusDev(QString a,int b,QString c):SerialDev(a,b),m_SlaveAddr(c){} void showdata() { qDebug()<<"------------modbus 设备----------------------------------"; qDebug()<<"\n"; qDebug()<<"m_boaudrate="<<m_boaudrate; qDebug()<<"m_name="<<m_name; qDebug()<<"m_SlaveAddr="<<m_SlaveAddr; } protected: QString m_SlaveAddr; //波特率 }; int main() { SerialDev d1(9600); SerialDev d2("串口设备",9600); d2.showdata(); ModbusDev d3("串口设备",9600,"1"); d3.showdata(); return 0; }
c++ 继承
最新推荐文章于 2023-03-16 23:45:18 发布