To chyba bardziej metody wirtualne... choć sam nie wiem...
Slynx napisał(a):Nie mogę tego znaleźć, ale jeśli można w przedefiniowanej funkcji wirtualnej zmienić również typ zwracanej wartości,
Ponieważ w tym przypadku argumenty "a", "b" mogą być zarówno typu String jak i typu char, a jak wiadomo char nie można dodawać, tak jak to robi funkcja.
Ponieważ w tym przypadku argumenty "a", "b" mogą być zarówno typu String jak i typu char, a jak wiadomo char nie można dodawać, tak jak to robi funkcja.
polymorphism napisał(a):Baron, sprawdź, czy skompiluje Ci się próba wywołania metody Funkcja spoza pliku Unit1.cpp
polymorphism napisał(a):I dlatego w C++ jest coś takiego jak specjalizacja szablonów. Czyli dla Twojego przykładu tworzymy specjalną wersję szablonu dla c-stringów:
Slynx napisał(a):No tak tak, ale ja pytałem o deklaracje zapowiadające.
error C3254: 'xx' : class contains explicit override 'Do' but does not derive from an interface that contains the function declaration |
There are four classes given on this example. Shape is a base class and Rect1, Circle and Triangle are the classes derived from the base class Shape. The base class Shape* is used to access all three dervied class functions. It is called Polymorphism.
Działa tylko trzeba ją odpowiednio zaadresować np w Unit2.cpp:
Ale w ten sposób tworzymy dodatkową funkcję, równie dobrze mógłbym wykorzystać przeciążenie funkcji.
KOD cpp: UKRYJref class xy: public virt
{
public:
virtual void virt::Do() //<-- a to 'virt' to po co tutaj?
...
}
Powrót do Ogólne problemy z programowaniem
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 3 gości