const class member functions

 

 

Compiler: Visual C++ Express Edition 2005

Compiled on Platform: Windows XP Pro SP2

Header file: Standard

Additional project setting: Set project to be compiled as C++

Project -> your_project_name Properties -> Configuration Properties -> C/C++ -> Advanced -> Compiled As: Compiled as C++ Code (/TP)

Other info:

To do: Display some data

To show: The const class member functions

 

 

// constant member function

#include <iostream>

using namespace std;

 

// --- Class declaration -----

class Date

{

int month;

public:

// we would test the month only...

Date (int mnt, int dy, int yr);

// A write function, so can't be const

void SetMonth(int mnt);

// A read only function declaration

int GetMonth() const;

};

 

// --- Class implementation ---

Date::Date(int,int,int)

{

}

 

void Date::SetMonth(int mnt)

{

// Modify the non const member variable data

month = mnt;

}

 

// A read only function implementation

int Date::GetMonth() const

{

// Does not modify anything

return month;

}

 

// ----main program----

void main(void)

{

Date TheDate(7,4,2004);

// non const member function, OK

TheDate.SetMonth(11);

 

cout<<"Month of the sample date is "<<TheDate.GetMonth()<<endl;

// another dummy const object...

const Date BirthDate(7,4,1971);

// Then try to modify the const object, NOT OK

// BirthDate.SetMonth(5);

// const member function sending message...

BirthDate.GetMonth();

// So, the following shouldn't have the output data...

cout<<"Another silly call, the month is "<<BirthDate.GetMonth()<<endl;

}

 

Output example:

 

Month of the sample date is 11

Another silly call, the month is -858993460

Press any key to continue . . .

 

 

C and C++ Programming Resources | C & C++ Code Example Index