dynamically allocated objects may have constructors and destructors : new « Development « C++ Tutorial






#include <iostream>
#include <new>
#include <cstring>
using namespace std;
   
class balance {
  double cur_bal;
  char name[80];
public:
  balance(double n, char *s) {
    cur_bal = n;
    strcpy(name, s);
  }
  ~balance() {
    cout << "Destructing ";
    cout << name << "\n";
  }
  void get_bal(double &n, char *s) {
    n = cur_bal;
    strcpy(s, name);
  }
};
   
int main()
{
  balance *p;
  char    s[80];
  double  n;

  // this version uses an initializer
  try {
    p = new balance (1.1, "A");
  } catch (bad_alloc xa) {
    cout << "Allocation Failure\n";
    return 1;
  }
   
  p->get_bal(n, s);
   
  cout << s << "'s balance is: " << n;
  cout << "\n";
   
  delete p;
   
  return 0;
}








5.12.new
5.12.1.Use new and delete
5.12.2.Global new
5.12.3.Initialize memory
5.12.4.Allocate an array
5.12.5.Allocate an object
5.12.6.Allocate memory for an object
5.12.7.Catch 'new' memory allocation exception
5.12.8.using new to get memory for strings
5.12.9.Allocate an array of objects by overloading new and delete operators
5.12.10.dynamically allocated objects may have constructors and destructors