Connecting Tech Pros Worldwide Help | Site Map

how to access a private member function without using friend and virtual

rajasekaran.psg@gmail.com
Guest
 
Posts: n/a
#1: Jan 5 '07
hi there,

i am a Rajasekaran, a final yr it student,, i am having a doubt
regarding the above subject can you guys help me out,,

eg:

class A
{
private:
void show() {cout<<"Private function called";} //
this is the function i need to be called

// dont change the class..
};

Rolf Magnus
Guest
 
Posts: n/a
#2: Jan 5 '07

re: how to access a private member function without using friend and virtual


rajasekaran.psg@gmail.com wrote:
Quote:
hi there,
>
i am a Rajasekaran, a final yr it student,, i am having a doubt
regarding the above subject can you guys help me out,,
>
eg:
>
class A
{
private:
void show() {cout<<"Private function called";} //
this is the function i need to be called
>
// dont change the class..
};
Why?

Ondra Holub
Guest
 
Posts: n/a
#3: Jan 5 '07

re: how to access a private member function without using friend and virtual


rajasekaran.psg@gmail.com napsal:
Quote:
hi there,
>
i am a Rajasekaran, a final yr it student,, i am having a doubt
regarding the above subject can you guys help me out,,
>
eg:
>
class A
{
private:
void show() {cout<<"Private function called";} //
this is the function i need to be called
>
// dont change the class..
};
Hi. This function is private to prevent its call from outside of class
A. There is no clean way how to call this function.

You could do a dirty hack:

#define private public
class A
{
private:
void show() {cout<<"Private function called";} //
};
#undef private

But it is not actually "not changing" the class.

Nobody should attempt to call private function directly - 'private' is
there to prevent it. As class user you should forget, that any private
function even exists, because it may require some special
pre-/postcondition to be fulfilled before/after it is called.

Closed Thread