У Ц++ функција је блок кода који је уведен за обављање неке функције и показивачи се користе за указивање на променљиве у функцији. Показивачи се додељују адреси.
Како вратити показивач из функција у Ц++
У Ц++ је могуће вратити показивач из функције. Ово се може постићи декларисањем функције типа враћања као показивача на ту функцију. Свака функција која се креира заузима одређену адресу у меморији. Звездица * се убацује лево од назива функције.
Синтакса
Ово је синтакса за враћање показивача из функције у Ц++:
повратак тип ( * фунцтион_поинтер_наме ) ( аргумент_типе_1, аргумент_типе_2, ……, аргумент_типе_н ) = име_функције ;
Пример 1
Овај пример илуструје враћање показивача из функције у Ц++:
#инцлуде <иостреам>
Користећи именског простора стд ;
празнина резултат ( инт & а )
{
а + = 10 ;
}
инт главни ( )
{
инт Икс = 40 ;
//показивач се враћа из функције
празнина ( * птр ) ( инт & ) = & резултат ;
птр ( Икс ) ;
цоут << Икс << ендл ;
повратак 0 ;
}
У овом изворном коду, декларисана је функција резултата воид и узима референцу на инт а која се повећава 10 пута. Променљива к чува вредност 40, а *птр указује на функцију инт&. Док птр показује на резултат, тако да се к повећава за 10.
Вредност уноса к се повећава за 10 и враћа се за 50.
Пример 2
Ово је пример који израчунава недељну плату радника:
#инцлуде <иостреам>Користећи именског простора стд ;
дупло & ГетВееклиХоурс ( )
{
дупло х = 32.65 ;
дупло & сати = х ;
повратак сати ;
}
дупло * ГетСалари ( )
{
дупло плата = 42.48 ;
дупло * Сатна плата = & плата ;
повратак Сатна плата ;
}
инт главни ( )
{
дупло сати = ГетВееклиХоурс ( ) ;
дупло плата = * ГетСалари ( ) ;
цоут << „Недељно радно време радника: “ << сати << ендл ;
цоут << „Плата по сату радника:“ << плата << ендл ;
дупло ВееклиСалари = сати * плата ;
цоут << „Недељна плата радника:“ << ВееклиСалари << ендл ;
повратак 0 ;
}
У овом изворном коду се уносе сати и плата по сату. Повратни показивач из методе функције се користи за приступ овим параметрима и израчунавање недељне плате радника.
Познавајући седмичне сате и сатницу, недељна плата се може израчунати множењем оба термина.
Закључак
У Ц++ је могуће вратити показивач из функције. Ово се може постићи декларисањем функције типа враћања као показивача на ту функцију. Свака функција која се креира заузима одређену адресу у меморији.