Avatar billede krismort Nybegynder
31. marts 2002 - 13:36 Der er 1 løsning

virtual ?

hvis jeg har en funktion i en klasse som ser sådan ud

class myCls
{
virtual void test(input);   
};

hvad gør "virtual" ?
Avatar billede jpk Nybegynder
31. marts 2002 - 13:58 #1
Fra MSDN:

C++ Specific —>

A virtual function is a member function that you expect to be redefined in derived classes. When you refer to a derived class object using a pointer or a reference to the base class, you can call a virtual function for that object and execute the derived class's version of the function.

END C++ Specific

Example 1

class WageEmployee
{
public:
  virtual float computePay();
};

class SalesPerson : public WageEmployee
{
public:
  float computePay();
};
You can execute different versions of computePay( ) depending on the type of object you're calling it for.

Example 2

WageEmployee aWorker;
SalesPerson aSeller;
WageEmployee *wagePtr;

wagePtr = &aWorker;
wagePtr->computePay();  // call WageEmployee::computePay
wagePtr = &aSeller;
wagePtr->computePay();  // call SalesPerson::computePay
The virtual keyword is needed only in the base class's declaration of the function; any subsequent declarations in derived classes are virtual by default.

A derived class's version of a virtual function must have the same parameter list and return type as those of the base class. If these are different, the function is not considered a redefinition of the virtual function. A redefined virtual function cannot differ from the original only by return type.


--------------------------------------------------------------------------------
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester