第四周 课后实践:阅读程序

本文详细解读了C++中构造函数和析构函数的使用,通过具体代码实例展示了如何在类中定义和调用构造函数与析构函数,包括默认构造、参数化构造和析构函数的实现,以及类间成员对象的生命周期管理。

问题及代码:

/*  
* Copyright (c) 2014, 烟台大学计算机学院  
* All rights reserved.  
* 文件名称:Project4.cpp  
* 作    者:陈旭  
* 完成日期:2015年3月30 日  
* 版 本 号:v1.0  
*  
* 问题描述:阅读程序, 了解构造函数和析构函数的运用情况 
* 输入描述:略  
* 程序输出:略  
*/ 
#include <iostream>
using namespace std;
class A
{
    int a , b ;
public :
    A( )
    {
        a=b=0;
        cout <<"a="<<a<<","<<"b="<<b<<endl;
    }
    A(int aa, int bb): a(aa),b(bb)
    {
        cout <<"a="<<a<<","<<"b="<<b<<endl;
    }
    ~A( )
    {
        cout<<"Destructor "<<a<<" "<<b<<endl;
    }
};
int main()
{
    A x, y(2, 3);
    return 0;
}


 

运行结果:

 

 

问题及代码:

#include <iostream>
using namespace std;
class A
{
public:
    A()
    {
        cout<<"A";
    }
    ~A()
    {
        cout<<"~A";
    }
};
class B
{
    A *p;
public:
    B()
    {
        cout<<"B";
        p=new A();
    }
    ~B()
    {
        cout<<"~B";
        delete p;
    }
};
int main()
{
    B obj;
    return 0;
}


 

运行结果:

 

 

问题及代码:

#include <iostream>
using namespace std;
class toy
{
public:
    toy(int q, int p)
    {
        quan = q;
        price = p;
    }
    int get_quan()
    {
        return quan;
    }
    int get_price()
    {
        return price;
    }
private:
    int quan, price;
};
int main()
{
    toy op[3][2]=
    {
        toy(10,20),toy(30,48),
        toy(50,68),toy(70,80),
        toy(90,16),toy(11,120)
    };
    int i;
    for (i=0; i<3; i++)
    {
        cout<<op[i][0].get_quan()<<",";
        cout<<op[i][0].get_price()<<"\n";
        cout<<op[i][1].get_quan()<<",";
        cout<<op[i][1].get_price()<<"\n";
    }
    cout<<"\n";
    return 0;
}


 

运行结果:

 

问题及代码:

#include <iostream>
using namespace std;
class DA
{
    int k;
public:
    DA(int x=1): k(x) { }
    ~DA()
    {
        cout<<k;
    }
};
int main()
{
    DA d[]= {DA(3),DA(3),DA(3) };
    DA *p=new DA[2];
    delete []p;
    return 0;
}


 

运行结果:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值