继承机制中的构造器和析构器

2024-03-02 22:48

本文主要是介绍继承机制中的构造器和析构器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 基类有个带有参数的构造器
class Animal
{
public:Animal(std::string theName);std::string name;
}
class Pig:public Animal
{
public:Pig(std::string theName);
}
//在构造器中定义方法
Animal::Animal(std::string theName){name = theName;}
Pig::Pig(std::string theName):Animal(theName){}
  • 注意在子类的构造器定义里的“:Animal(theName)” 语法含义是:
    当调用Pig()构造器时(以theName作为输入参数时),Animal()构造器也将被调用(theName输入参数将传递给它)
  • 于是,当我们调用Pig
    pig(“小猪猪”);将把字符串“小猪猪”传递给Pig()和Animal(),赋值动作将实际发生在Animal()方法里。
    而与构造器的情况相反,基类的析构器将在子类的最后一条语句执行完毕后才被调用。
#include <iostream>
#include <string> 
using namespace std; 
class BaseClass
{public:	BaseClass();	~ BaseClass(); void doSomething();};class SubClass:public BaseClass{public:	SubClass();	~ SubClass();}; BaseClass::BaseClass()
{	cout << "进入基类构造器...." << endl;	cout << "我在基类构造器里边干了某些事...." << endl;} 
BaseClass:: ~ BaseClass()
{	cout << "进入基类析构器..." << endl;	cout << "我在基类析构器里边也干了某事..." << endl;}void BaseClass::doSomething(){	cout << "我干了某些事..." << endl;} SubClass::SubClass()
{	cout << "进入子类构造器..." << endl;	cout << "我在子类构造器里干了某些事... " << endl;}SubClass::~SubClass(){	cout << "进入子类析构器..." << endl;} int main()
{	SubClass subclass;	subclass.doSomething(); 	cout << "完事,收工!" << endl;  	return 0;
}

在这里插入图片描述

这篇关于继承机制中的构造器和析构器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/767671

相关文章

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分

C++11委托构造函数和继承构造函数的实现

《C++11委托构造函数和继承构造函数的实现》C++引入了委托构造函数和继承构造函数这两个重要的特性,本文主要介绍了C++11委托构造函数和继承构造函数的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、委托构造函数1.1 委托构造函数的定义与作用1.2 委托构造函数的语法1.3 委托构造函

Java 继承和多态的作用及好处

《Java继承和多态的作用及好处》文章讲解Java继承与多态的概念、语法及应用,继承通过extends复用父类成员,减少冗余;多态实现方法重写与向上转型,提升灵活性与代码复用性,动态绑定降低圈复杂度... 目录1. 继承1.1 什么是继承1.2 继承的作用和好处1.3 继承的语法1.4 子类访问父类里面的成

Redis的持久化之RDB和AOF机制详解

《Redis的持久化之RDB和AOF机制详解》:本文主要介绍Redis的持久化之RDB和AOF机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述RDB(Redis Database)核心原理触发方式手动触发自动触发AOF(Append-Only File)核

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中