首页 > 其他分享 >定义一个基类Object,有数据成员weight及相应的操作函数,由此派生出Box类,增加数据成员height和width及相应的操作函数,声明一个Box对象,观察构造函数与析构函数的调用顺序。

定义一个基类Object,有数据成员weight及相应的操作函数,由此派生出Box类,增加数据成员height和width及相应的操作函数,声明一个Box对象,观察构造函数与析构函数的调用顺序。

时间:2023-04-10 19:56:20浏览次数:43  
标签:Box 函数 weight Object height width 构造函数

定义一个基类Object,有数据成员weight及相应的操作函数,由此派生出Box类,增加数据成员height和width及相应的操作函数,声明一个Box对象,观察构造函数与析构函数的调用顺序。

#include<bits/stdc++.h>
using namespace std;
class Object {
protected:
	double weight;
public:
	Object(double a) {
		weight = a;
		cout << "constructed O" << endl;
	}
	double func1();
	~Object() {
		cout << "destroyed O" << endl;
	}
};
class Box :public Object {
private:
	double height,width;
public:
	Box(double c,double a,double b):Object(c),height(a),width(b){
		cout << "constructed B" << endl;
	}
	~Box() {
		cout << "destroyed B" << endl;
	}
	void dis() {
		cout << "weight= " << weight << " height= " << height << " width= " << width << endl;
	}
};
int main()
{
	Box b1(2,3.4,6.4);
	b1.dis();

}


结果为:

constructed O
constructed B
weight= 2 height= 3.4 width= 6.4
destroyed B
destroyed O

标签:Box,函数,weight,Object,height,width,构造函数
From: https://www.cnblogs.com/drip3775/p/17304114.html

相关文章

  • 借用gcc内置函数帮助C来实现函数重载
    借用gcc内置函数__builtin_choose_expr和__builtin_types_compatible_p可以帮助c来实现函数重载。首先对这两个函数功能做下介绍__builtin_choose_expr(expr,expr1,expr2)与c语言:?运算符有些类似,如果expr表达式为真,那么返回expr1,否则返回expr2_builtin_types_compatible_p(ty......
  • JS函数的副作用你了解过吗?
    原文链接:   https://note.noxussj.top/?source=51cto什么是副作用?副作用会让一个函数变的不纯,纯函数是根据相同的输入返回相同的输出,如果函数依赖于外部的状态就无法保证输出相同,就会带来副作用。副作用来源函数依赖外部状态(变量),但是副作用不可能完全禁止,尽可能控制在它们可控范......
  • 自己动手从零写桌面操作系统GrapeOS系列教程——4.1 在VirtualBox中安装CentOS
    学习操作系统原理最好的方法是自己写一个简单的操作系统。之前讲解开发环境时并没有介绍具体的安装过程,有网友反应CentOS的安装配置有问题,尤其是共享文件夹。本讲我们就来补充介绍一下在VirtualBox中安装配置CentOS的具体过程,彻底解决GrapeOS开发环境问题。一、新建虚拟机1.......
  • C++ 性能优化 - for循环条件中不要调用函数
    for循环条件中调用普通函数#include<iostream>#include<chrono>usingnamespacestd;longlongcount=0;constintN=10;intgetSize(){cout<<"getsize"<<endl;returnN+1;}voidtimeMeasure(void(*f)()){autobeg......
  • 使用lambda表达式来给函数传递参数
    self.combo_box2.Bind(wx.EVT_TEXT_ENTER,self.on_text_change)绑定了事件和on_text_change函数;怎么在这个绑定操作中给on_text_change函数传递一个参数呢?需要传递的参数就是这个控件本身(self.combo_box2)。在on_text_change函数中又该怎么取用呢?接下来举例说明如何处理:在绑......
  • 练习4-1 编写一个函数strrindex(s, t),用于返回字符串t在s中最右出现的位置,如果 s中不
    #include<stdio.h>#include<string.h>intstrrindex(chars[],chart[]){inti,j,k;intlen=strlen(s);for(i=len-1;i>=0;i++){for(j=i,k=0;t[k]!=0&&s[j]==t[k];j++,k++);if(k>0&......
  • DOSbox的安装及其运行和基本命令的使用(内附下载链接)
    下载工具AsmTools(内含4个文件)1个安装文件(DOSBox0.74-Win32-installer),3个调试工具(debug、LINK、MASM)链接:https://pan.baidu.com/s/12HX_hHye8upcCO9Wwm6Qtg提取码:1234 任选一个分区盘,如E盘在根目录下建立一个英文文件夹命名为“debug”,将3个调试工具(debug、LINK、MASM)放入......
  • 函数声明、函数原型、函数定义
    定义”是指对函数功能的确立,包括指定函数名,函数值类型、形参类型、函数体等,它是一个完整的、独立的函数单位。而“声明”的作用则是把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类型和个数......
  • 使用ChatGPT写一个GDALDatasetRasterIOEx功能增强函数
    GDALDatasetRasterIOEx函数是GDAL用来读取栅格数据文件像素数据的函数,默认是不支持参数传入的读取窗口范围超出栅格的实际范围的,但是很多时候,需要按照地理范围读取,就会有超出栅格范围的情况。之前我常用的做法,就是创建一个基于Mem的VRT(虚拟栅格),VRT的地理范围取自己想要读取的......
  • C++派生类里析构函数和构造函数的调用顺序
    C++派生类里析构函数和构造函数的调用顺序1.定义一个哺乳类Mammal,在由此派生出狗类Dog,定义一个Dog类的对象,观察基类和派生类的构造函数与析构函数的调用顺序。#include<bits/stdc++.h>usingnamespacestd;classMammal{public: Mammal(){ cout<<"constructedM"<<e......