У чым розніца паміж віртуальнай функцыяй і чыстай віртуальнай функцыяй у C ++?


адказ 1:

Чыстая віртуальная функцыя - гэта тая, для якой вы павінны і павінны прадаставіць вызначэнне (рэалізацыю) у вытворным класе, бо базавы клас, у якім вы аб'яўляеце чыстую віртуальную функцыю, не павінен (павінен) мець такое вызначэнне. Клас (звычайна базавы клас) з выключна віртуальнай дэкларацыяй функцыі называецца клас АБРАСТАВАННЕ і не можа быць выдадзены.

Увогуле, вы можаце вызначыць функцыі, для якіх вы не жадаеце забяспечваць стандартнае паводзіны як чыстыя віртуальныя функцыі, так што гэтыя функцыі вызначаюцца ў вытворным класе.

Больш інфармацыі можна знайсці тут, Virtual Function - Вікіпедыя

Спадзяюся, гэта дапамагае! ;-)


адказ 2:

Віртуальная функцыя і чыстая віртуальная функцыя адкладзены ў дэкларацыі. Віртуальная функцыя аб'яўляецца ключавым словам "віртуальны" на пачатку дэкларацыі. Прыклад: віртуальны return_type function_name (аргументы функцыі);

У той час як Чыстая віртуальная функцыя аб'яўляецца якEx: імя віртуальнай return_type (аргументы функцыі) = 0;

УВАГА: Часам пісалася, што чыстая віртуальная функцыя не мае цела функцыі. Аднак гэта не заўсёды так. Стандартнае азначэнне для чыстай віртуальнай функцыі не з'яўляецца звычайным, але магчыма.

Прыклад: імя функцыі віртуальнага вяртання (аргументы функцыі) = 0; // тлумачэнне

Імя класа зваротнага тыпу :: імя функцыі (аргумент функцыі) // вызначэнне {. . . } Віртуальная функцыя і Чыстая віртуальная функцыя таксама не выкарыстоўваюцца.

Віртуальная функцыя робіць свой клас паліморфным базавым класам. Атрыманыя класы могуць перазапісаць віртуальную функцыю і перагледзець паводзіны. Віртуальная функцыя, якая выклікаецца паказальнікам / спасылкай базавага класа, вырашаецца падчас выканання. Які называецца тэрмін абавязацельства.

Чыстая віртуальная функцыя прапануе функцыянал, аналагічны функцыі віртуальнай функцыі. Акрамя гэтага, клас Pure Virtual Function ператварае яго ў абстрактны клас. Гэта азначае, што клас, які мае чыстую віртуальную функцыю, не можа быць экземплярам. З гэтага класа могуць быць створаны толькі спасылкі і паказальнікі. Чыстая віртуальная функцыя ў базавых класах прымушае атрыманыя класы вызначыць чыстую віртуальную функцыю. У адваротным выпадку вытворны клас таксама будзе абстрактным класам.


адказ 3:

Віртуальная функцыя і чыстая віртуальная функцыя адкладзены ў дэкларацыі. Віртуальная функцыя аб'яўляецца ключавым словам "віртуальны" на пачатку дэкларацыі. Прыклад: віртуальны return_type function_name (аргументы функцыі);

У той час як Чыстая віртуальная функцыя аб'яўляецца якEx: імя віртуальнай return_type (аргументы функцыі) = 0;

УВАГА: Часам пісалася, што чыстая віртуальная функцыя не мае цела функцыі. Аднак гэта не заўсёды так. Стандартнае азначэнне для чыстай віртуальнай функцыі не з'яўляецца звычайным, але магчыма.

Прыклад: імя функцыі віртуальнага вяртання (аргументы функцыі) = 0; // тлумачэнне

Імя класа зваротнага тыпу :: імя функцыі (аргумент функцыі) // вызначэнне {. . . } Віртуальная функцыя і Чыстая віртуальная функцыя таксама не выкарыстоўваюцца.

Віртуальная функцыя робіць свой клас паліморфным базавым класам. Атрыманыя класы могуць перазапісаць віртуальную функцыю і перагледзець паводзіны. Віртуальная функцыя, якая выклікаецца паказальнікам / спасылкай базавага класа, вырашаецца падчас выканання. Які называецца тэрмін абавязацельства.

Чыстая віртуальная функцыя прапануе функцыянал, аналагічны функцыі віртуальнай функцыі. Акрамя гэтага, клас Pure Virtual Function ператварае яго ў абстрактны клас. Гэта азначае, што клас, які мае чыстую віртуальную функцыю, не можа быць экземплярам. З гэтага класа могуць быць створаны толькі спасылкі і паказальнікі. Чыстая віртуальная функцыя ў базавых класах прымушае атрыманыя класы вызначыць чыстую віртуальную функцыю. У адваротным выпадку вытворны клас таксама будзе абстрактным класам.


адказ 4:

Віртуальная функцыя і чыстая віртуальная функцыя адкладзены ў дэкларацыі. Віртуальная функцыя аб'яўляецца ключавым словам "віртуальны" на пачатку дэкларацыі. Прыклад: віртуальны return_type function_name (аргументы функцыі);

У той час як Чыстая віртуальная функцыя аб'яўляецца якEx: імя віртуальнай return_type (аргументы функцыі) = 0;

УВАГА: Часам пісалася, што чыстая віртуальная функцыя не мае цела функцыі. Аднак гэта не заўсёды так. Стандартнае азначэнне для чыстай віртуальнай функцыі не з'яўляецца звычайным, але магчыма.

Прыклад: імя функцыі віртуальнага вяртання (аргументы функцыі) = 0; // тлумачэнне

Імя класа зваротнага тыпу :: імя функцыі (аргумент функцыі) // вызначэнне {. . . } Віртуальная функцыя і Чыстая віртуальная функцыя таксама не выкарыстоўваюцца.

Віртуальная функцыя робіць свой клас паліморфным базавым класам. Атрыманыя класы могуць перазапісаць віртуальную функцыю і перагледзець паводзіны. Віртуальная функцыя, якая выклікаецца паказальнікам / спасылкай базавага класа, вырашаецца падчас выканання. Які называецца тэрмін абавязацельства.

Чыстая віртуальная функцыя прапануе функцыянал, аналагічны функцыі віртуальнай функцыі. Акрамя гэтага, клас Pure Virtual Function ператварае яго ў абстрактны клас. Гэта азначае, што клас, які мае чыстую віртуальную функцыю, не можа быць экземплярам. З гэтага класа могуць быць створаны толькі спасылкі і паказальнікі. Чыстая віртуальная функцыя ў базавых класах прымушае атрыманыя класы вызначыць чыстую віртуальную функцыю. У адваротным выпадку вытворны клас таксама будзе абстрактным класам.


адказ 5:

Віртуальная функцыя і чыстая віртуальная функцыя адкладзены ў дэкларацыі. Віртуальная функцыя аб'яўляецца ключавым словам "віртуальны" на пачатку дэкларацыі. Прыклад: віртуальны return_type function_name (аргументы функцыі);

У той час як Чыстая віртуальная функцыя аб'яўляецца якEx: імя віртуальнай return_type (аргументы функцыі) = 0;

УВАГА: Часам пісалася, што чыстая віртуальная функцыя не мае цела функцыі. Аднак гэта не заўсёды так. Стандартнае азначэнне для чыстай віртуальнай функцыі не з'яўляецца звычайным, але магчыма.

Прыклад: імя функцыі віртуальнага вяртання (аргументы функцыі) = 0; // тлумачэнне

Імя класа зваротнага тыпу :: імя функцыі (аргумент функцыі) // вызначэнне {. . . } Віртуальная функцыя і Чыстая віртуальная функцыя таксама не выкарыстоўваюцца.

Віртуальная функцыя робіць свой клас паліморфным базавым класам. Атрыманыя класы могуць перазапісаць віртуальную функцыю і перагледзець паводзіны. Віртуальная функцыя, якая выклікаецца паказальнікам / спасылкай базавага класа, вырашаецца падчас выканання. Які называецца тэрмін абавязацельства.

Чыстая віртуальная функцыя прапануе функцыянал, аналагічны функцыі віртуальнай функцыі. Акрамя гэтага, клас Pure Virtual Function ператварае яго ў абстрактны клас. Гэта азначае, што клас, які мае чыстую віртуальную функцыю, не можа быць экземплярам. З гэтага класа могуць быць створаны толькі спасылкі і паказальнікі. Чыстая віртуальная функцыя ў базавых класах прымушае атрыманыя класы вызначыць чыстую віртуальную функцыю. У адваротным выпадку вытворны клас таксама будзе абстрактным класам.


адказ 6:

Віртуальная функцыя і чыстая віртуальная функцыя адкладзены ў дэкларацыі. Віртуальная функцыя аб'яўляецца ключавым словам "віртуальны" на пачатку дэкларацыі. Прыклад: віртуальны return_type function_name (аргументы функцыі);

У той час як Чыстая віртуальная функцыя аб'яўляецца якEx: імя віртуальнай return_type (аргументы функцыі) = 0;

УВАГА: Часам пісалася, што чыстая віртуальная функцыя не мае цела функцыі. Аднак гэта не заўсёды так. Стандартнае азначэнне для чыстай віртуальнай функцыі не з'яўляецца звычайным, але магчыма.

Прыклад: імя функцыі віртуальнага вяртання (аргументы функцыі) = 0; // тлумачэнне

Імя класа зваротнага тыпу :: імя функцыі (аргумент функцыі) // вызначэнне {. . . } Віртуальная функцыя і Чыстая віртуальная функцыя таксама не выкарыстоўваюцца.

Віртуальная функцыя робіць свой клас паліморфным базавым класам. Атрыманыя класы могуць перазапісаць віртуальную функцыю і перагледзець паводзіны. Віртуальная функцыя, якая выклікаецца паказальнікам / спасылкай базавага класа, вырашаецца падчас выканання. Які называецца тэрмін абавязацельства.

Чыстая віртуальная функцыя прапануе функцыянал, аналагічны функцыі віртуальнай функцыі. Акрамя гэтага, клас Pure Virtual Function ператварае яго ў абстрактны клас. Гэта азначае, што клас, які мае чыстую віртуальную функцыю, не можа быць экземплярам. З гэтага класа могуць быць створаны толькі спасылкі і паказальнікі. Чыстая віртуальная функцыя ў базавых класах прымушае атрыманыя класы вызначыць чыстую віртуальную функцыю. У адваротным выпадку вытворны клас таксама будзе абстрактным класам.


адказ 7:

Віртуальная функцыя і чыстая віртуальная функцыя адкладзены ў дэкларацыі. Віртуальная функцыя аб'яўляецца ключавым словам "віртуальны" на пачатку дэкларацыі. Прыклад: віртуальны return_type function_name (аргументы функцыі);

У той час як Чыстая віртуальная функцыя аб'яўляецца якEx: імя віртуальнай return_type (аргументы функцыі) = 0;

УВАГА: Часам пісалася, што чыстая віртуальная функцыя не мае цела функцыі. Аднак гэта не заўсёды так. Стандартнае азначэнне для чыстай віртуальнай функцыі не з'яўляецца звычайным, але магчыма.

Прыклад: імя функцыі віртуальнага вяртання (аргументы функцыі) = 0; // тлумачэнне

Імя класа зваротнага тыпу :: імя функцыі (аргумент функцыі) // вызначэнне {. . . } Віртуальная функцыя і Чыстая віртуальная функцыя таксама не выкарыстоўваюцца.

Віртуальная функцыя робіць свой клас паліморфным базавым класам. Атрыманыя класы могуць перазапісаць віртуальную функцыю і перагледзець паводзіны. Віртуальная функцыя, якая выклікаецца паказальнікам / спасылкай базавага класа, вырашаецца падчас выканання. Які называецца тэрмін абавязацельства.

Чыстая віртуальная функцыя прапануе функцыянал, аналагічны функцыі віртуальнай функцыі. Акрамя гэтага, клас Pure Virtual Function ператварае яго ў абстрактны клас. Гэта азначае, што клас, які мае чыстую віртуальную функцыю, не можа быць экземплярам. З гэтага класа могуць быць створаны толькі спасылкі і паказальнікі. Чыстая віртуальная функцыя ў базавых класах прымушае атрыманыя класы вызначыць чыстую віртуальную функцыю. У адваротным выпадку вытворны клас таксама будзе абстрактным класам.