C++面向对象整理(11)之委托构造函数与继承构造函数

本文介绍了C++中委托构造函数和继承构造函数的概念,以及如何通过它们优化代码复用和提高可读性。委托构造函数用于调用不同参数的构造函数,继承构造函数则让派生类自动继承基类的构造行为。
摘要由CSDN通过智能技术生成

C++面向对象整理(11)之委托构造函数与继承构造函数

注:整理一些突然学到的C++知识,随时mark一下
例如:忘记的关键字用法,新关键字,新数据结构



提示:本文为 C++ 中 异常、try、throw、catch 的写法和举例


一、委托与继承

委托构造函数继承构造函数是两种用于优化和简化构造函数编写的特性。这些特性在C++11及以后的版本中引入,旨在提高代码的复用性和可读性。下面我将分别解释这两种构造函数的特点和用法。

1、委托构造函数

委托构造函数允许一个构造函数调用同一个类中的另一个构造函数(一般是参数不同的重载),以执行公共的初始化任务。这可以减少重复的代码,并使构造函数之间的逻辑更加清晰。

语法:通过构造函数的列表初始化写法加自己同名的另一个重载的参数个数不同的本构造函数(即加一个同名构造函数)

示例:

class MyClass {  
public:  
    MyClass() : MyClass(123) {} // 委托给接受一个整数的构造函数  
  
    MyClass(int value) : data(value) {} // 初始化成员变量data  
  
private:  
    int data;  
};

在上面的示例中,无参数的构造函数MyClass()通过委托调用接受一个整数的构造函数MyClass(int value),并传递了值123。这样,两个构造函数都可以使用相同的初始化逻辑。

2、继承构造函数

继承构造函数允许派生类继承基类的构造函数,而无需在派生类中显式地重新定义它们。这可以减少代码的冗余,并确保基类和派生类之间的一致性。
语法:通过在子类声明中使用using 类名::构造函数名来实现。这样,子类就可以直接使用基类的构造函数来构造派生类对象,而不需要重新定义相同的构造函数。

示例:

class Base {  
public:  
    Base(int value) : data(value) {}  
  
private:  
    int data;  
};  
  
class Derived : public Base {  
public:  
    using Base::Base; // 继承基类的构造函数  
};

在上面的示例中,Derived类通过using Base::Base;语句继承了Base类的构造函数。这意味着,当创建Derived类的对象时,可以直接使用Base类的构造函数,而无需在Derived类中重新定义它们。

Derived d(10); // 使用继承自Base的构造函数来初始化Derived对象

这样,d对象将使用Base类的构造函数进行初始化,其中data成员变量将被初始化为10。

总结

MyClass(paraslist1,...) : MyClass(paraslist2...) {}实现委托构造。
using Baseclass::Baseclass; 实现子类的继承构造

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值