构造函数的定义:
#include <iostream>
using std::cout;
using std::endl;
#include "CreateAndDestroy.h"
CreateAndDestroy::CreateAndDestroy( int ID, string messageString )
{
objectID = ID; // set object's ID number
message = messageString; // set object's descriptive message
cout << "Object " << objectID << " constructor runs "
<< message<<endl;
}
CreateAndDestroy::~CreateAndDestroy()
{
// output newline for certain objects; helps readability
cout << ( (objectID == 1 || objectID == 6 )? "\n" : "" );
cout << "Object " << objectID << " destructor runs "
<< message << endl;
}
执行函数:
#include <iostream>
using std::cout;
using std::endl;
#include "CreateAndDestroy.h" // include CreateAndDestroy class definition
void create( void ); // prototype
CreateAndDestroy first( 1, "(global before main)" ); // global object
int main()
{
cout << "\nMAIN FUNCTION: EXECUTION BEGINS" << endl;
CreateAndDestroy second( 2, "(local automatic in main)" );
static CreateAndDestroy third( 3, "(local static in main)" );
create();
cout << "\nMAIN FUNCTION: EXECUTION RESUMES" << endl;
CreateAndDestroy fourth( 4, "(local automatic in main)" );
cout << "\nMAIN FUNCTION: EXECUTION ENDS" << endl;
return 0;
} // end main
// function to create objects
void create( void )
{
cout << "\nCREATE FUNCTION: EXECUTION BEGINS" << endl;
CreateAndDestroy fifth( 5, "(local automatic in create)" );
static CreateAndDestroy sixth( 6, "(local static in create)" );
CreateAndDestroy seventh( 7, "(local automatic in create)" );
cout << "\nCREATE FUNCTION: EXECUTION ENDS"<<endl;
} // end function create
