dbo:abstract
|
- Virtuální funkce (někdy nazývané virtuální metoda) je funkce pracující s instancí třídy, jejíž chování je určeno definicí funkce třídy instance nezávisle na typu ukazatele, který na instanci ukazuje. Virtuální funkce tvoří základ pro polymorfismus (spíš tvoří jeden ze způsobů implementace polymorfismu), což je jeden ze základních znaků objektově orientovaného programování. V některých programovacích jazycích (například v Javě) jsou metody instancí implicitně virtuální. Nechcete-li, aby byla metoda definována jak virtuální, musíte ji definovaným způsobem označit. V jiných programovacích jazycích (např. v C++ nebo v C#) naopak funkce implicitně nejsou virtuální a chete-li je definovat jako virtuální, musíte je definovaným způsobem označit. Metody tříd z prinicipu virtuální být nemohou, leda by třída byla definována jako řádný objekt, jenž je instancí nějaké třídy tříd, jak je tomu např. v jazyku Smalltalk. (cs)
- Eine virtuelle Methode ist in der objektorientierten Programmierung eine Methode einer Klasse, deren Einsprungadresse erst zur Laufzeit ermittelt wird. Dieses sogenannte dynamische Binden ermöglicht es, Klassen von einer Oberklasse abzuleiten und dabei Funktionen zu überschreiben bzw. zu überladen. Das Konzept der virtuellen Methoden wird von einem Compiler (Übersetzer) zum Beispiel mittels Funktionstabellen umgesetzt. In manchen Programmiersprachen wie Java, Smalltalk und Python sind alle Methoden virtuell. Dagegen müssen in Sprachen wie C++, C#, SystemVerilog oder Object Pascal Methoden für diesen Zweck mit dem Schlüsselwort virtual gekennzeichnet werden, was die zusätzliche Möglichkeit bietet, das Überladen in Unterklassen zu verhindern. (de)
- En programación orientada a objetos (POO), una función virtual o método virtual es una función cuyo comportamiento, al ser declarado "virtual", es determinado por la definición de una función con la misma cabecera en alguna de sus subclases. Este concepto es una parte muy importante del polimorfismo en la POO. El concepto de función virtual soluciona los siguientes problemas: En POO, cuando una clase derivada hereda de una clase base, un objeto de la clase derivada puede ser referido (o coercionado) tanto como del tipo de la clase base como del tipo de la clase derivada. Si hay funciones de la clase base redefinidas por la clase derivada, aparece un problema cuando un objeto derivado ha sido coercionado como del tipo de la clase base. Cuando un objeto derivado es referido como del tipo de la base, el comportamiento de la llamada a la función deseado es ambiguo. Distinguir entre virtual y no virtual sirve para resolver este problema. Si la función en cuestión es designada "virtual", se llamará a la función de la clase derivada (si existe). Si no es virtual, se llamará a la función de la clase base. (es)
- En programmation orientée objet, une fonction virtuelle est une fonction définie dans une classe (méthode) qui est destinée à être redéfinie dans les classes qui en héritent. Dans la plupart des langages, soit toutes les méthodes sont automatiquement virtuelles (Java, Swift…), soit le mot clé virtual est utilisé pour indiquer que la méthode d'une classe est virtuelle (C++, Delphi, Free Pascal…). Une fonction ne possédant qu'une déclaration, sans code implémenté, est dite abstraite ou virtuelle pure.
* En C++, la syntaxe spéciale = 0 est utilisée.
* En Java, le mot-clé abstract est utilisé. Les méthodes virtuelles pures sont destinées à être définies dans les classes dérivées. (fr)
- Una funzione (o metodo) virtuale è parte importante del polimorfismo all'interno del paradigma di programmazione orientata agli oggetti (OOP, Object Oriented Programming). Una funzione virtuale permette a una classe derivata di ridefinire (override) le funzioni che eredita dalle classi da cui deriva, anche nel caso in cui la classe derivata sia convertita al tipo dell'oggetto da cui è derivata. Nella OOP, quando una classe derivata eredita da una classe base, si può usare un oggetto della classe derivata sia come oggetto di tipo della classe base sia come oggetto di tipo della classe derivata. Se alcune funzioni sono ridefinite dalla classe derivata, la conversione di un oggetto derivato nel tipo della classe base causa una ambiguità: non è chiaro se si voglia chiamare la funzione come definita nella classe base o come ridefinita in quella derivata. La definizione di funzione virtuale ha lo scopo di risolvere questo problema. Se la funzione in questione è identificata come "virtuale" allora la funzione della classe derivata sarà chiamata (se esiste). Se la funzione non è virtuale, si farà riferimento alla funzione della classe base. (it)
- In object-oriented programming, in languages such as C++, and Object Pascal, a virtual function or virtual method is an inheritable and overridable function or method for which dynamic dispatch is facilitated. This concept is an important part of the (runtime) polymorphism portion of object-oriented programming (OOP). In short, a virtual function defines a target function to be executed, but the target might not be known at compile time. Most programming languages, such as JavaScript, PHP and Python, treat all methods as virtual by default and do not provide a modifier to change this behavior. However, some languages provide modifiers to prevent methods from being overridden by derived classes (such as the final keyword in Java and PHP). (en)
- 객체 지향 프로그래밍에서 가상 함수(virtual function 또는 virtual method)는 상속하는 클래스 내에서 같은 시그니처의 함수로 오버라이딩 될 수 있는 함수 또는 메소드이다. 이 개념은 객체 지향 프로그래밍 (OOP)의 다형성에서 중요한 부분이다. (ko)
- Na programação orientada a objetos uma função virtual ou método virtual é uma ou método cujo comportamento pode ser em uma classe herdeira por uma função com a mesma . Esse conceito é uma parte muito importante do polimorfismo em programação orientada a objetos (OOP). (pt)
- Metoda wirtualna (funkcja wirtualna) to metoda, której wywołanie jest polimorficzne. (pl)
- Віртуальний метод або віртуальна функція — метод об'єкта в об'єктно-орієнтованому програмуванні, різний для базового класу і класу нащадка. Концепція віртуальної функції вирішує наступну проблему: У ООП, якщо клас-нащадок наслідується від базового класу, об'єкт екземпляр класу-нащадка може використовуватись або як екземпляр батьківського класу (бути приведеним до батьківського класу), або як екземпляр класу-нащадка. Якщо у класі-нащадку є функції, що перекривають (мають таку ж сигнатуру) функції із батьківського класу, то поведінка при виклику таких методів (при використанні даного об'єкта як екземпляра батьківського класу) є невизначеною. Відмінність між віртуальністю і невіртуальністю функцій вирішує цю невизначеність. Якщо функція описана як віртуальна у базовому класі, тоді буде викликана функція із класу нащадка (якщо така існує). Якщо вона не віртуальна, тоді — із батьківського класу. РеалізаціяТехніка виклику віртуальних методів називається ще «динамічним (пізнім) зв'язуванням». Мається на увазі, що ім'я методу, використане в програмі, зв'язується з адресою входу конкретного методу динамічно (під час виконання програми), а не статично (під час компіляції), так як в момент компіляції, в загальному випадку, неможливо визначити, яка з існуючих реалізацій методу буде викликана. У компільованих мовах програмування динамічне зв'язування виконується зазвичай з використанням таблиці віртуальних методів, яка створюється компілятором для кожного класу, що має хоча б один віртуальний метод. В елементах таблиці знаходяться вказівники на реалізації віртуальних методів, що відповідають даному класу (якщо в класі-нащадку додається новий віртуальний метод, його адреса додається в таблицю, якщо в класі-нащадку створюється нова реалізація віртуального методу - відповідне поле в таблиці заповнюється адресою цієї реалізації) . Таким чином, для адреси кожного віртуального методу в дереві спадкоємства є одне, фіксоване зміщення в таблиці віртуальних методів. Кожен об'єкт має технічне поле, яке при створенні об'єкта ініціалізується покажчиком на таблицю віртуальних методів свого класу. Для виклику віртуального методу з об'єкта береться покажчик на відповідну таблицю віртуальних методів, а з неї, за відомим фіксованому зсуву, - покажчик на реалізацію методу, використовуваного для даного класу. При використанні множинного спадкоємства ситуація дещо ускладнюється за рахунок того, що таблиця віртуальних методів стає нелінійної. (uk)
- Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения. Таким образом, программисту необязательно знать точный тип объекта для работы с ним через виртуальные методы: достаточно лишь знать, что объект принадлежит классу или наследнику класса, в котором объявлен метод. Одним из переводов слова virtual с английского языка может быть «фактический», что больше подходит по смыслу. (ru)
- 在面向对象程序设计领域,C++、Object Pascal 等语言中有虚函数(英語:virtual function)或虚方法(英語:virtual method)的概念。这种函数或方法可以被子类继承和覆盖,通常使用动态分派实现。这一概念是面向对象程序设计中(运行时)多型的重要组成部分。简言之,虚函数可以给出目标函数的定义,但该目标的具体指向在编译期可能无法确定。 虚函数在设计模式方面扮演重要角色。例如,《设计模式》一书中提到的23种设计模式中,仅5个对象创建模式就有4个用到了虚函数(抽象工厂、工厂方法、生成器、原型),只有单例没有用到。 (zh)
|
rdfs:comment
|
- 객체 지향 프로그래밍에서 가상 함수(virtual function 또는 virtual method)는 상속하는 클래스 내에서 같은 시그니처의 함수로 오버라이딩 될 수 있는 함수 또는 메소드이다. 이 개념은 객체 지향 프로그래밍 (OOP)의 다형성에서 중요한 부분이다. (ko)
- Na programação orientada a objetos uma função virtual ou método virtual é uma ou método cujo comportamento pode ser em uma classe herdeira por uma função com a mesma . Esse conceito é uma parte muito importante do polimorfismo em programação orientada a objetos (OOP). (pt)
- Metoda wirtualna (funkcja wirtualna) to metoda, której wywołanie jest polimorficzne. (pl)
- Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения. Таким образом, программисту необязательно знать точный тип объекта для работы с ним через виртуальные методы: достаточно лишь знать, что объект принадлежит классу или наследнику класса, в котором объявлен метод. Одним из переводов слова virtual с английского языка может быть «фактический», что больше подходит по смыслу. (ru)
- 在面向对象程序设计领域,C++、Object Pascal 等语言中有虚函数(英語:virtual function)或虚方法(英語:virtual method)的概念。这种函数或方法可以被子类继承和覆盖,通常使用动态分派实现。这一概念是面向对象程序设计中(运行时)多型的重要组成部分。简言之,虚函数可以给出目标函数的定义,但该目标的具体指向在编译期可能无法确定。 虚函数在设计模式方面扮演重要角色。例如,《设计模式》一书中提到的23种设计模式中,仅5个对象创建模式就有4个用到了虚函数(抽象工厂、工厂方法、生成器、原型),只有单例没有用到。 (zh)
- Virtuální funkce (někdy nazývané virtuální metoda) je funkce pracující s instancí třídy, jejíž chování je určeno definicí funkce třídy instance nezávisle na typu ukazatele, který na instanci ukazuje. Virtuální funkce tvoří základ pro polymorfismus (spíš tvoří jeden ze způsobů implementace polymorfismu), což je jeden ze základních znaků objektově orientovaného programování. V některých programovacích jazycích (například v Javě) jsou metody instancí implicitně virtuální. Nechcete-li, aby byla metoda definována jak virtuální, musíte ji definovaným způsobem označit. (cs)
- Eine virtuelle Methode ist in der objektorientierten Programmierung eine Methode einer Klasse, deren Einsprungadresse erst zur Laufzeit ermittelt wird. Dieses sogenannte dynamische Binden ermöglicht es, Klassen von einer Oberklasse abzuleiten und dabei Funktionen zu überschreiben bzw. zu überladen. Das Konzept der virtuellen Methoden wird von einem Compiler (Übersetzer) zum Beispiel mittels Funktionstabellen umgesetzt. (de)
- En programmation orientée objet, une fonction virtuelle est une fonction définie dans une classe (méthode) qui est destinée à être redéfinie dans les classes qui en héritent. Dans la plupart des langages, soit toutes les méthodes sont automatiquement virtuelles (Java, Swift…), soit le mot clé virtual est utilisé pour indiquer que la méthode d'une classe est virtuelle (C++, Delphi, Free Pascal…). Une fonction ne possédant qu'une déclaration, sans code implémenté, est dite abstraite ou virtuelle pure.
* En C++, la syntaxe spéciale = 0 est utilisée.
* En Java, le mot-clé abstract est utilisé. (fr)
- En programación orientada a objetos (POO), una función virtual o método virtual es una función cuyo comportamiento, al ser declarado "virtual", es determinado por la definición de una función con la misma cabecera en alguna de sus subclases. Este concepto es una parte muy importante del polimorfismo en la POO. El concepto de función virtual soluciona los siguientes problemas: (es)
- In object-oriented programming, in languages such as C++, and Object Pascal, a virtual function or virtual method is an inheritable and overridable function or method for which dynamic dispatch is facilitated. This concept is an important part of the (runtime) polymorphism portion of object-oriented programming (OOP). In short, a virtual function defines a target function to be executed, but the target might not be known at compile time. (en)
- Una funzione (o metodo) virtuale è parte importante del polimorfismo all'interno del paradigma di programmazione orientata agli oggetti (OOP, Object Oriented Programming). Una funzione virtuale permette a una classe derivata di ridefinire (override) le funzioni che eredita dalle classi da cui deriva, anche nel caso in cui la classe derivata sia convertita al tipo dell'oggetto da cui è derivata. (it)
- Віртуальний метод або віртуальна функція — метод об'єкта в об'єктно-орієнтованому програмуванні, різний для базового класу і класу нащадка. Концепція віртуальної функції вирішує наступну проблему: У ООП, якщо клас-нащадок наслідується від базового класу, об'єкт екземпляр класу-нащадка може використовуватись або як екземпляр батьківського класу (бути приведеним до батьківського класу), або як екземпляр класу-нащадка. Якщо у класі-нащадку є функції, що перекривають (мають таку ж сигнатуру) функції із батьківського класу, то поведінка при виклику таких методів (при використанні даного об'єкта як екземпляра батьківського класу) є невизначеною. (uk)
|