Father.h
#ifndef FATHER_H
#define FATHER_H
#include"Mother.h"
class Father
{
public:
Father(int a,int b);
~Father(void);
private:
Mother m;
int i;
};
#endif
Father.cpp
#include "Father.h"
#include<iostream>
using namespace std;
Father::Father(int a,int b):m(a,b),i(a)
{
cout<<"father constructed!"<<endl;
m.show();
cout<<"I:"<<i<<endl;
}
Father::~Father(void)
{
cout<<"father deconstructed!"<<endl;
}
Mother.h
#pragma once
class Mother
{
public:
Mother(int a,int b);
~Mother(void);
void show();
private:
int a;
int b;
};
Mother.cpp
#include "Mother.h"
#include<iostream>
using namespace std;
Mother::Mother(int a,int b)
{
this->a=a;
this->b=b;
cout<<"mother constructed!"<<endl;
}
Mother::~Mother(void)
{
cout<<"mother deconstructed!"<<endl;
}
void Mother::show()
{
cout<<"A:"<<a<<"B:"<<b<<endl;
}
Main.cpp
#include<iostream>
#include"Father.h"
using namespace std;
int main()
{
Father f(1,2);
return 0;
}
先调用Mother的构造函数,然后调用Father的构造函数,然后调用Father的析构函数,最后调用Mother的析构函数
当调用X::X()的时候,按照对象成员在类中定义的顺序,依次调用他们的构造函数,X的构造函数最后执行,析构函数的调用相反。
分享到:
相关推荐
C++类成员和数据成员初始化总结 C++为类中提供类成员的初始化列表 类对象的构造顺序是这样的: 1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员 2.进入构造函数后在构造函数中执行一般计算 1.类...
定义了一个以hours, minutes和seconds作为数据成员的Time类。设计了成员函数: (1) 有无参构造函数、带三个参数的构造函数、拷贝构造函数、析构函数 (2) 设计两个Time对象相减运算的成员函数。函数输出结果为...
关键字class表明定义的是一个类;... 成员,类的数据成员一般用来描述该类对象的属性,称为属性;函数成员是描 述类行为,称作方法。函数成员由函数构成,这些作为类成员的函数因此也 叫成员函数。
南京工程学院数据结构题。以顺序表作为队列成员实现队列
复数的实部sb和虚部xb作为其数据成员。提供成员函数disp()显示复数(格式:-3+5i或6-2i),重载“+”、“-”为FS类的成员函数,用来计算两个复数的和、差。 思路导航: ① 定义类,设计构造函数和显示函数print(); ② ...
属于对象的数据成员一般在构造方法__init__()中定义,当然也可以在其他成员方法中定义,在定义和在实例方法中访问数据成员时以self作为前缀,同一个类的不同对象(实例)的数据成员之间互不影响; 属于类的数据成员...
题目:建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个...
静态数据成员与类关联,整个类只有一份静态数据成员拷贝,由全类所有对象共享。 • 非静态数据成员只有在定义了对象之后才存在(C++才会为它分配内存空间);静态数据成员不属于单个对象,即使没有定义它所属类的...
从输出结果可以看出,当在被调用函数fun中,改变了对象的数据成员值[m1.setxy(12, 15)]和指向对象指针的数据成员值[m2->setxy(22, 25)]以后,可以看到只有指向对象指针作参数所指向的对象被改变了,而另一个对象作...
1)person类作为基类,数据成员有name、age. 2)Student子类新增数据成员score(成绩),Professor子类新增数据成员title(职称)。 3)在基类中定义虚函数print(),通过基类指针分别调用person类、Student类、Professor...
c++实验报告(4)面向对象c++实验报告(4)面向对象
我们知道,在一个类中可以用类对象作为数据成员,即子对象(详情请查看:C++有子对象的派生类的构造函数)。实际上,对象成员的类型可以是本派生类的基类,也可以是另外一个已定义的类。在一个类中以另一个类的对象...
不改变现有单链表类,根据具体应用(如学生管理)自定义结点结构和应用类,将单链表的一个模板类定义的链表对象作为自定义的应用类的一个数据成员,即链表作为新类的一个属性。可以简单改写自定义类和结点结构的属性...
6.静态数据成员必须在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象( 共享 )。 7.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型( 不同 )。 8.在C++中,虽然友元提供了类之间数据进行...
1 、定义一个时间类Time,有三个私有成员变量Hour、Minute、Second,定义构造函数、析构函数以及用于改变、获取、输出时间信息的公有函数,主函数中定义时间对象,并通过调用各种成员函数完成时间的设定、改变、获取...
(1)从Base类派生圆类(Circle)、正方形类(Square),圆类新增数据成员半径(radius),正方形类新增数据成员边长(a),圆类和正方形类都有构造函数,修改、显示数据成员值的函数,求面积函数。 (2)写出main( )...
例如1.定义一个复数类Complex,重载运算符“+” “-”,“*”,“/”,使之...2.定义一个Teacher(教师)类和一个Student(学生)类,二者有一部分数据成员是相同的。例如num(号码),name (姓名),sex(性别......
掌握类与对象的概念,类与对象的定义方法及二者间的区别。 掌握类的成员函数的定义方法、保存方法及调用...理解并掌握当一个类的对象作为另一个类的数据成员时,利用初始化 表调用构造函数的方法、构造函数的执行顺序。
数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何...
7.3 复合:把对象作为类成员 7.4 友元函数与友元类 7.5 使用this指针 7.6 动态内存分配与new和delete运算符 7.7 static类成员 7.8 数据抽象与信息隐藏 7.8.1 范例:数组抽象数据类型 7.8.2 范例:字符串...