c++ day10 lambda 类继承

lambda

在python中应用没有;进行代码范围约束,使用 lambda 只能写一行,功能有限,而在c++中可以通过;进行代码范围约束,可以有多行,

[](int a ,int b)->int{return a + b ;}

->int 也将可以不写,自动推导返回值,

[] 是捕获列表, 如果在匿名函数中使用到其他外部的变量就需要用到捕获列表了

[a]      表示值传递方式捕获变量 a
[=]      表示值传递方式捕获所有父作用域的变量(包括this) 
[&a]     表示引用方式传递捕获变量a 
[&]      表示引用传递方式捕获所有父作用域的变量(包括this)
[this]   表示值传递方式捕获当前的this指针
[=,&a,&b]   引用方式捕获 a 和 b , 值传递方式捕获其他所有变量 (这是组合写法)

() 是接收的参数,当匿名函数不是自调用的时候可以只写类型,不需要在()中写变量名

{} 在c++中是代码块,标记着匿名函数的代码

继承

在面向对象语言中,继承意味着代码复用,A类继承B类意味着在B类中也可以使用A类中的方法或函数
如:

//父类
class  A{
public:
    int a = 10;
};

// 子类
class B: public A{

};
父类有参构造

当继承的时候,父类中的类是有参构造的话就需要在子类的构造中先调用父类的有参构造

class Person{

private :
    int age ;
    string name ;
    
public :
    Person(int age , string name){
        cout << "调用了父类构造函数" << endl;
        this->age = age ;
        this->name = name;
    }
};

class Student: public Person{

public :
    Student(int age , string name):Person(age ,name){
        cout << "调用了子类类构造函数" << endl;
    }
};

可以在子类中的参数化列表中调用父类中的有参构造,这样就完成了父类先初始化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值