《C++语言基础》程序阅读——构造函数和析构函数

简介: 返回:贺老师课程教学链接请写出下面程序的运行结果,再和计算机运行的结果对照。无论对错,再想一想。#include <iostream>using namespace std;class A{ int a , b ;public : A( ) { a=b=0; cout <<"a="<<a

返回:贺老师课程教学链接

请写出下面程序的运行结果,再和计算机运行的结果对照。无论对错,再想一想。

#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;
}








目录
相关文章
|
存储 编译器 C++
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
本文介绍了C++中类和对象的高级特性,包括取地址运算符重载、构造函数的初始化列表、类型转换、static修饰成员、友元、内部类及匿名对象等内容。文章详细解释了每个概念的使用方法和注意事项,帮助读者深入了解C++面向对象编程的核心机制。
354 5
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
659 22
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
805 4
|
编译器 C++
C++ 类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。
233 30
|
编译器 C语言 C++
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
C++入门4——类与对象3-1(构造函数的类型转换和友元详解)
167 2
|
C++
【C++基础】程序流程结构详解
这篇文章详细介绍了C++中程序流程的三种基本结构:顺序结构、选择结构和循环结构,包括if语句、三目运算符、switch语句、while循环、do…while循环、for循环以及跳转语句break、continue和goto的使用和示例。
362 2
|
C++
C++构造函数初始化类对象
C++构造函数初始化类对象
161 0
|
C++
C++入门4——类与对象3-2(构造函数的类型转换和友元详解)
C++入门4——类与对象3-2(构造函数的类型转换和友元详解)
159 0
|
PHP C++ Python
右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)
右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)
729 0
|
11月前
|
编译器 C++ 开发者
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。