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








目录
相关文章
|
18天前
|
编译器 C++
【C++】详解构造函数
【C++】详解构造函数
|
21天前
|
存储 编译器 C++
【C++】类和对象④(再谈构造函数:初始化列表,隐式类型转换,缺省值
C++中的隐式类型转换在变量赋值和函数调用中常见,如`double`转`int`。取引用时,须用`const`以防修改临时变量,如`const int& b = a;`。类可以有隐式单参构造,使`A aa2 = 1;`合法,但`explicit`关键字可阻止这种转换。C++11起,成员变量可设默认值,如`int _b1 = 1;`。博客探讨构造函数、初始化列表及编译器优化,关注更多C++特性。
|
21天前
|
存储 编译器 C语言
【C++】类和对象②(类的默认成员函数:构造函数 | 析构函数)
C++类的六大默认成员函数包括构造函数、析构函数、拷贝构造、赋值运算符、取地址重载及const取址。构造函数用于对象初始化,无返回值,名称与类名相同,可重载。若未定义,编译器提供默认无参构造。析构函数负责对象销毁,名字前加`~`,无参数无返回,自动调用以释放资源。一个类只有一个析构函数。两者确保对象生命周期中正确初始化和清理。
|
22天前
|
存储 算法 编译器
程序与技术分享:C++模板元编程简介
程序与技术分享:C++模板元编程简介
15 0
|
22天前
|
存储 JavaScript 前端开发
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)
|
22天前
|
自然语言处理 C语言 C++
程序与技术分享:C++写一个简单的解析器(分析C语言)
程序与技术分享:C++写一个简单的解析器(分析C语言)
|
22天前
|
存储 算法 编译器
程序与技术分享:C++模板元编程学习笔记
程序与技术分享:C++模板元编程学习笔记
|
8天前
|
设计模式 安全 编译器
【C++11】特殊类设计
【C++11】特殊类设计
28 10
|
13天前
|
C++
C++友元函数和友元类的使用
C++中的友元(friend)是一种机制,允许类或函数访问其他类的私有成员,以实现数据共享或特殊功能。友元分为两类:类友元和函数友元。类友元允许一个类访问另一个类的私有数据,而函数友元是非成员函数,可以直接访问类的私有成员。虽然提供了便利,但友元破坏了封装性,应谨慎使用。
41 9