sdut 3-2 构造函数的调用

3-2 构造函数的调用

Time Limit: 1000MS Memory limit: 65536K

题目描述

通过本题目的练习可以掌握构造函数和析构函数的调用;

创建类A;类中仅包含构造函数和析构函数,按照程序的输出写出类的定义和主函数main中的代码。

输入

输出

输出数据有4行,分别代表对构造函数和析构函数的调用;本练习要求所编写程序的输出必须与示例相同。

示例输入

示例输出

Constructing an object of A
Constructing an object of A
Destructing an object of A
Destructing an object of A

提示

来源

黄晶晶

示例程序

#include<iostream>

using namespace std;

class p
{
public :
    p()//构造函数
    {
        cout <<"Constructing an object of A"<< endl;
    }

    ~p()//析构函数
    {
        cout <<"Destructing an object of A"<< endl;
    }

};

int main()
{
    p a;
    p b;
    return 0;
}
时间: 2024-12-28 21:10:13

sdut 3-2 构造函数的调用的相关文章

sdut 3-3 构造函数的调用(高级)

3-3 构造函数的调用(高级) Time Limit: 1000MS Memory limit: 65536K 题目描述 通过本题目的练习可以掌握创建普通对象.创建对象数组和动态创建和析构对象时调用构造函数和析构函数的时机: 要求创建一个类A:类中仅包含构造函数和析构函数,按照程序的输出写出类的定义和主函数main中的代码. 输入 无 输出 输出共有11行数据,分别如示例输出所示 示例输入 无 示例输出 ----begin main--- constructing an object of A

多重继承,虚继承,MI继承中虚继承中构造函数的调用情况

先来测试一些普通的多重继承.其实这个是显而易见的. 测试代码: [cpp] view plain copy print? //测试多重继承中派生类的构造函数的调用顺序何时调用 //Fedora20 gcc version=4.8.2 #include <iostream> using namespace std; class base { public: base() { cout<<"base created!"<<endl; } ~base()

C++中构造函数能调用虚函数吗?(答案是语法可以,输出错误),但Java里居然可以

环境:XPSP3 VS2005 今天黑总给应聘者出了一个在C++的构造函数中调用虚函数的问题,具体的题目要比标题复杂,大体情况可以看如下的代码: [cpp] view plain copy class Base { public: Base() { Fuction(); } virtual void Fuction() { cout << "Base::Fuction" << endl; } }; class A : public Base { public:

c++中六种构造函数的实现以及9中情况下,构造函数的调用过程

六种构造函数的实现代码如下: #include<iostream> using namespace std; //c++中六种默认的构造函数 class Test { public: Test(int d = 0):m_data(d)//1构造函数(带默认值0),以参数列表的形式初始化 { cout<<"Creat Test Obj :"<<this<<endl; } ~Test()//2析构函数 { cout<<"

解析C++转换构造函数(调用规则)

什么叫转换构造函数? 当一个构造函数只有一个参数,而且该参数又不是本类的const引用时,这种构造函数称为转换构造函数. 参考一下示例: // TypeSwitch.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <IOSTREAM> using namespace std; class Complex { public: Complex()

[C++基础]在构造函数内部调用构造函数

看下面的面试题: #include <iostream> using namespace std; struct CLS { int m_i; CLS( int i ) : m_i(i){} CLS() { CLS(0); } }; int main() { CLS obj; cout << obj.m_i << endl; return 0; } 打印的结果是系统的一个随机值.所以这种直接在构造函数中调用另外的一个构造函数是不可行的. 代码奇怪的地方在于构造函数中调用

c++类中构造函数的调用

在c++类中构造函数一般会在类的对象被创建时调用,总结起来有3中情况: 第一种: MyClass class;//在栈中产生一个对象 第二种: MyClass* class = new MyClass();//在堆中产生一个对象 第三种: static MyClass class;//在函数活动范围之外产生的一个对象 第一种和第二种在配置内存(来自堆或栈)之后立刻产生一个隐藏的构造函数的调用,而第三种情况必须由startup来启用(startup是mian函数调用前被调用的,有c++编译器提供,

C++语言笔记系列之十三——派生类构造函数的调用

1.派生类构造函数的调用 (1)一个基类的所有数据成员均被派生类继承.创建一个派生类对象时,系统在为派生类对象分配单元时一定要为其基类数据成员分配子空间. (2)一个派生类对象在创建时不仅要调用派生类构造函数,而且要调用基类构造函数. 派生类中的数据成员在派生类中构造. 基类中的数据成员在基类中构造. 原因: A.构造函数不继承. B.派生类的构造函数必须通过调用基类的构造函数完成基类数据成员的初始化. C.若派生类中含有子对象,必须调用子对象的构造函数. 2.派生类的构造函数 派生类名(总参数

C++继承中析构函数 构造函数的调用顺序以及虚析构函数

首先说说构造函数.大家都知道构造函数里就能够调用成员变量,而继承中子类是把基类的成员变成自己的成员,那么也就是说子类在构造函数里就能够调用基类的成员了,这就说明创建子类的时候必须先调用基类的构造函数,仅仅有这样子类才干在构造函数里使用基类的成员,所以是创建子类时先调用基类的构造函数然后再调用自己的构造函数.通俗点说,你要用某些物品.但这些物品你没办法自己生产,自然就要等别人生产出来,你才干拿来用. 接着就是析构函数了,上面说到子类是将基类的成员变成自己的成员,那么基类就会仅仅存在子类中直到子类调