ex4-15.cpp - Example 4-15 delete and destructors

// File: eTest4-15.cpp

// delete or delete []

#include <iostream>
using namespace std;

class Test
{
private:
    int n;
public:

    Test()
    {
        n = 0;
        cout << "Test constructor called\n";
    }

    ~Test()
    {
        cout << "Test destructor called\n";
    }
};

int main(void)
{
    Test* ptrTest;

    cout << "allocate space for 1 Test\n";
    ptrTest = new Test;
    delete ptrTest;

    cout << "allocate space for 3 Tests\n";
    ptrTest = new Test[3];
    delete ptrTest;

    // MS Visual C++ 2008 calls the destructor only once, then results in a run-time error
    // Digital Mars C++ Compiler (ver 8.42) calls the destructor only once
    // Borland (ver 5.51) calls the destructor only once
    // gnu compilers (ver 3.0 and later) calls the destructor only once

    return 0;
}



CIS27: Programming in C++    Instructor: Joe Bentley