QT学习之C++基础(下)

C++基础(下)

1、类函数的重载函数

表示我们可以在类里定义同名但参数不同的函数。

如,一个类里面可以同时定义下面两个函数,但内部参数不同。

class student//类,类中的成员可以时变量,也可以是函数
{
public:
    void test();
        void test(int a);
};

重载函数在调用时,会自动判断参数类型来选择使用哪个函数。

2、构造函数和析构函数

析构函数:如已定义析构函数,则当对象被删除/生命周期结束,则触发析构函数

构造函数:一经定义即刻触发

注意:

(1)析构函数和构造函数的函数名必须和类名一样

(2)析构函数前要加上一个符号~

如构造函数:

class student//类,类中的成员可以时变量,也可以是函数
{
public:
    student();
    ~student();
    void test();
    void test(int a);
};
student::student()//构造函数
{

  cout<<"hello!"<<endl;

}
student::~student()//析构函数
{

        cout<<"Bye!"<<endl;

}
void student ::test()
 {
    cout<<123<<endl;
}
 void student ::test(int a)
 {
     a=80;
    cout<<a<<endl;
 }
int main()
{
    student *my =new student;


    delete my;

    return 0;

}

打印结果:

 注意:

构造函数可以被重载,析构函数不可以重载。构造函数中的参数在定义类的时候就需要给出。

如构造函数要求引入一个int a

student::student(int a)

{

count<<a<<endl;

}

则定义student类的时候只能在堆里面定义,且需给出引入的参数

如:

student *me = new student(10)

3、类的继承

什么时类的继承?

指子类可以继承父类的public和protected部分,但不能继承private。

如子类mystudent要继承父类student,格式如下:

class student//类,类中的成员可以时变量,也可以是函数
{
public:
    student();
    ~student();
    void test();
    void test(int a);
private:
    int hehe ;
};

class mystudent : public student//子类继承父类
{  
public:
    
    int grade; 
};

int main()
{
    student *my =new student;
    mystudent my2;
    my2.grade=98;
    my2.test();
    return 0;

}

如何在子类里访问父类成员?

子类的要访问父类的成员也是通过  .  和  ->  来访问。

4、虚函数和纯虚函数

  • 虚函数:有实际定义的,virtual来修饰,允许派生类对他进行覆盖式的替换(即在子类与父类中同时含有相同名称的函数时,子类函数的调用优先使用在子类中定义的虚函数
  • 纯虚函数:即没有实际定义的虚函数

如何定义一个虚函数?

如:

class student
{
public:
    student();
    ~student();
    virtual void test();//虚函数
    virtual void test1(){};//纯虚函数
private:
    int hehe ;
};
void student ::test()
 {
    cout<<123<<endl;
}
  • 虚函数的优点:可以预留接口,实现分工合作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值