C++语言基础 例程 调用构造函数和析构函数的顺序

贺老师的教学链接  本课讲解

析构函数应用实例
方案1

const int N =500;
class Salary
{
public:
    Salary(int);
    void input( );
    void show( );
    ~Salary();
private:
    double salarys[N];
    int number; //实际人数
};

方案2

class Salary
{
public:
    Salary(int);
    void input( );
    void show( );
    ~Salary();
private:
    double *salarys;
    int number; //实际人数
};
Salary::Salary(int n)
{
    number = n;
    salarys=new double[number];
}
Salary::~Salary()
{
    delete []salarys;
}

谁先分配? 谁先释放?

#include <iostream>
using namespace std;
class Salary
{
public:
    Salary(int);
    void input( );
    void show( );
    ~Salary();
private:
    double *salarys;
    int number; //实际人数
};
Salary::Salary(int n)
{
    number = n;
    salarys=new double[number];  //分配大小正好合适的空间存放数据
}
Salary::~Salary()
{
    delete []salarys;
}
void Salary::input( )
{
    double x;
    int i;
    for(i=0; i<number; ++i)
    {
        cin>>x;
        salarys[i]=x;
    }
}

void Salary::show( )
{
    int i;
    for (i=0; i<number; i++)
        cout<<salarys[i]<<" ";
    cout<<endl;
}

int main( )
{
    Salary s1(50);
    s1.input( );
    Salary s2(1248);
    s2.input( );
    s1.show( );
    s2.show( );
    return 0;
}
时间: 2024-10-25 05:05:23

C++语言基础 例程 调用构造函数和析构函数的顺序的相关文章

C++语言基础 例程 默认构造函数

贺老师的教学链接  本课讲解 默认构造函数(default constructor) class Time { public: Time( ); void show_time(); private: int hour; int minute; int sec; }; Time::Time( ) { hour=0; minute=0; sec=0; }

C++语言基础 例程 派生类的构造函数和析构函数

贺老师的教学链接  本课讲解 一个简单派生类的定义 #include <iostream> #include<cstring> using namespace std; class Student //声明基类Student { public: Student(int n,string nam,char s):num(n),name(nam),sex(s) {} //基类构造函数 ~Student( ) { } //基类析构函数 void show( ) { cout<<

C++语言基础 例程 对象的动态建立和释放

贺老师的教学链接  本课讲解 对象的动态建立和释放 #include<iostream> using namespace std; class Box { public: Box(int w,int l,int h); ~Box(); int width; int length; int height; }; Box::Box(int w,int l,int h) { width=w; length=l; height=h; cout<<"========调用构造函数==

C++语言基础 例程 案例:MyVector类的设计

贺老师的教学链接  本课讲解 //MyVector类的设计 #include <iostream> using namespace std; class MyVector //定义向量类 { public: MyVector(int m); //构造函数,共有m个元素的向量,元素值预置为0 MyVector(const MyVector &v); //复制构造函数 ~MyVector(); //析构函数:释放动态数组所占用的存储空间 friend istream &operat

C++语言基础 例程 析构函数

贺老师的教学链接  本课讲解 析构函数示例 #include<string> #include<iostream> using namespace std; class Student { public: Student(int n,string nam,char s) { num=n; name=nam; sex=s; cout<<"执行构造函数:"<<name<<" come."<<endl

C++语言基础 例程 虚析构函数

贺老师的教学链接  本课讲解 问题的由来 #include <iostream> using namespace std; class Point { public: Point( ) { } ~Point() { cout<<"executing Point destructor"<<endl; } }; class Circle:public Point { public: Circle( ) { } ~Circle( ) { cout<&

C++语言基础 例程 构造函数

贺老师的教学链接  本课讲解 用构造函数初始化对象 #include <iostream> using namespace std; class Time { public: Time( ) { hour=0; minute=0; sec=0; } void set_time( ); void show_time( ); private: int hour; int minute; int sec; }; void Time::set_time( ) { cin>>hour; ci

C++语言基础 例程 带默认参数的构造函数

贺老师的教学链接  本课讲解 使用默认参数的构造函数 #include <iostream> using namespace std; class Time { public: Time( ); Time(int h,int m=0,int s=0); void show_time( ); private: int hour; int minute; int sec; }; Time::Time( ) { hour=0; minute=0; sec=0; } Time::Time(int h,

C++语言基础 例程 应用系统开发:银行储蓄系统

贺老师的教学链接  本课讲解 说明:(1)下面的代码,只演示了利用链表作为存储结构的可选处理方法,本讲提到的其他方面的拓展,请感兴趣做下去的同学自行使用相关技术组合起来,形成一个完整的系统.(2)运行程序,登录用户名和密码,请阅读程序,从程序中找出.建议建立多文件项目,将代码拷贝到IDE中看.(3)本程序由我的2011级学生刘镇参加企业组织的实训中完成,原文在:点击打开链接 Record.h #ifndef HEADER_RECORD //条件编译 #define HEADER_RECORD #