第九周项目1:阅读并理解程序(1)

问题及代码:

/*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作    者:崔青青
*完成日期:2016年4月22日
*版 本 号:v1.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;
}


 

运行结果:

知识点总结:

理解:在main函数中创建一个B对象,要执行B类的默认构造函数,输出B,在B类中又动态分配内存A类的一个对象,所以要执行A类的默认构造函数,输出A。

然后程序执行完毕,然后执行B的析构函数,输出~B,delete p执行A类的析构函数,输出~A。所以最后总的输出是:BA~B~A.

学习心得:

理解好程序有助于编程

你可能感兴趣的:(第九周项目1:阅读并理解程序(1))