Can we have a private virtual method ?

Answers were Sorted based on User's Feedback



Can we have a private virtual method ?..

Answer / nidhi singh

no, we cann't hav private virtual method as virtual is used
in case of inheritance but private members cannot be
inherited..

Is This Answer Correct ?    10 Yes 1 No

Can we have a private virtual method ?..

Answer / rajendra gandhi

No, we can't have private vitual method.

Is This Answer Correct ?    6 Yes 2 No

Can we have a private virtual method ?..

Answer / edward

yes... we can have private virtual method and will not give
any compile time/runtime error. but there is no use of it.
we could not call the method from out side of the class

Is This Answer Correct ?    5 Yes 1 No

Can we have a private virtual method ?..

Answer / nk

We can have virtual functions as long as we dont call the
function from a base pointer pointing to the base
class/derived class.

If we call then gives error.

The same error can be tested by compiling and running above
example.

Is This Answer Correct ?    3 Yes 2 No

Can we have a private virtual method ?..

Answer / sriram

We can have the private virtual method. But it can be
accessed only through the derived class not through the
base class.

class A
{
private:
virtual void fun() { std::cout << "A::fun" <<
std::endl; }

};

class B : public A
{
public:
virtual void fun() { std::cout << "B::fun" <<
std::endl; }

};

int main(int argc, char* argv[])
{
A* pa = new A();
((B*)(pa))->fun();
}

Output : A::fun

Is This Answer Correct ?    4 Yes 3 No

Can we have a private virtual method ?..

Answer / ganesh mishra

yes... we can have private virtual method and will not give
any compile time/runtime error.but when we derive any class
from it and override the virtual function,then the compiler
will throw a compile time error.

//file name is privatever.cpp

#include <iostream>
using namespace std;

class base
{
virtual void fun()
{
cout <<"base class function"<<endl;
}

};

class derive: public base
{
public:
virtual void fun()
{
cout<<"derived class function"<<endl;
}
};

int main()
{
base *pt;
derive *der = new derive;
pt = der;
pt->fun();
return(0);
}

here is the error
privatever.cpp: In function ‘int main()’:
privatever.cpp:6: error: ‘virtual void base::fun()’ is private
privatever.cpp:27: error: within this context

Is This Answer Correct ?    2 Yes 1 No

Can we have a private virtual method ?..

Answer / narasimulu

No we can't have private virtual method

Is This Answer Correct ?    3 Yes 4 No

Can we have a private virtual method ?..

Answer / gopinath das

Yes , It we can have a private virtual method. It has
nothing to do with inheritance. It only resolve the dynamic
binding . Only difference is that , this method should be
used inside the class defination of the Base .
The derived class may implements the method either
public,private or protected.
Exa:

class A
{
virtual void x(){cout<<"A"<<endl;};
public:
};
class B:public A
{
//virtual void x(){cout<<"B"<<endl;}; // no prob
public:
virtual void x(){cout<<"B"<<endl;};
};
int main()
{
A *a;
B *b=new B;
a=b;
a->fn();
}
Out put:
B

Is This Answer Correct ?    4 Yes 7 No

Post New Answer

More OOPS Interview Questions

Describe what an Interface is and how it?s different from a Class.

7 Answers   Spinsys,


What is purpose of inheritance?

0 Answers  


i am getting an of the type can not convert int to int *. to overcome this problem what we should do?

0 Answers  


What is difference between multiple inheritance and multilevel inheritance?

0 Answers  


What is polymorphism what is it for and how is it used?

0 Answers  






What is abstraction example?

0 Answers  


write a c++ code of diagonal matrix.

2 Answers  


what is object slicing?

9 Answers   L&T, Wipro,


What is the difference between XML Web Services using ASMX and .NET Remoting using SOAP?

1 Answers  


how to get the oracle certification? send me the answer

0 Answers   Oracle,


WHY FUCTION OVERLOADING DOSENOT RETURN A RETEN TYPE

2 Answers  


features of OOPS

22 Answers   Ness Technologies, Satyam,


Categories