学习记录记录

本文介绍了C++中default关键字的作用,即如何在缺少默认构造函数时自动生成,同时讲解了静态成员变量和静态成员函数的概念,以及const关键字在初始化和函数修饰上的应用。

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

  1. C++中约定如果一个类中自定义了带参数的构造函数,那么编译器就不会再自动生成默认构造函数,也就是说该类将不能默认创建对象,只能携带参数进行创建一个对象;但有时候需要创建一个默认的对象但是类中编译器又没有自动生成一个默认构造函数,那么为了让编译器生成这个默认构造函数就需要default这个属性。
class A
{
public:
A() = default;
 
A(int B) {
b = B;
};
 
private:
int b;
};
 
// 定义一个默认的对象
A a;
//如果没有A() = default; 那么就会报错,或者需要你手动实现一个A() { b =0;},所以我认为default只是为实现提供了方便;
 


静态成员变量:static 成员变量属于类,不属于某个具体的对象,即使创建多个对象,也只为 m_total 分配一份内存,所有对象使用的都是这份内存中的数据。当某个对象修改了 m_total,也会影响到其他对象。eg:学生类的总人数

静态成员函数:不用类的实例化。

const:初始化 const 成员变量只有一种方法,就是通过构造函数的初始化列表

    class VLA{
    private:
        const int m_len;
        int *m_arr;
    public:
        VLA(int len);
    };
    //必须使用初始化列表来初始化 m_len
    VLA::VLA(int len): m_len(len){
        m_arr = new int[len];
    }
  • 函数开头的 const 用来修饰函数的返回值,表示返回值是 const 类型,也就是不能被修改,例如const char * getname()
  • 函数头部的结尾加上 const 表示常成员函数,这种函数只能读取成员变量的值,而不能修改成员变量的值,例如char * getname() const
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值