• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

deklaracje długich funkcji.

Object Storage Arubacloud
0 głosów
166 wizyt
pytanie zadane 13 listopada 2015 w C i C++ przez Mateep Użytkownik (850 p.)

Witam czy wie ktoś jak napisać taką deklarację:

Zadeklarować wskaźnik do funkcji zwracającej wskaźnik do funkcji przyjmującej dwa
argumenty typu double i zwracającej wartość typu int i przyjmującej jako argumenty
referencje do typu double i wskaźnik do typu int

5 odpowiedzi

+2 głosów
odpowiedź 13 listopada 2015 przez adrian17 Ekspert (344,860 p.)

Jeśli to zadanie z książki / szkoły, to jest mega durne - w praktyce nigdy czegoś takiego nie napiszesz w jednej deklaracji, jeśli można posłużyć się typedefem na zwracaną funkcję. W każdym razie czuję się usprawiedliwiony wysłać gotowca, wypracowanego przed chwilą metodą prób i błędów na IRCu:

(edit: poprawione)

+2 głosów
odpowiedź 13 listopada 2015 przez Surykat Stary wyjadacz (14,780 p.)
Powiedz nauczycielowi, który to wymyślił, żeby się walnął czymś ciężkim w głowę. :)
+1 głos
odpowiedź 13 listopada 2015 przez furas Maniak (53,800 p.)
Jak będziesz miał taką deklarację to warto by było jakoś ją sprawdzić więc może zacznij od stworzenia wspomnianych funkcji a dopiero potem spróbuj zadeklarować wskaźnik. Może wtedy będzie łatwiej się za to zabrać i będzie można sprawdzać czy kompilator to przyjmie.
+1 głos
odpowiedź 13 listopada 2015 przez Radfler VIP (101,030 p.)

Podobne zadanie kiedyś pojawiło się w "Symfonii C++"! :D Jest ono jak dla mnie dosyć trudne (ale krótkie), więc podeślę Ci rozwiązanie (razem z zastosowaniem o.O):

#include <iostream>

// Zadeklarować wskaźnik do funkcji zwracającej wskaźnik do funkcji przyjmującej dwa
// argumenty typu double i zwracającej wartość typu int i przyjmującej jako argumenty
// referencje do typu double i wskaźnik do typu int

int foo(double, double) {
  return 0;
}

int(*bar(double&, int*))(double, double) {
  return &foo;
}

int main() {

  // Deklaracja wskaźnika
  int(*(*function)(double&, int*))(double, double) = &bar;

  double dummy;

  int (*result)(double, double) = function(dummy, nullptr);

  result(0.0, 0.0);

}
0 głosów
odpowiedź 13 listopada 2015 przez Mateep Użytkownik (850 p.)
NIestety próbowanie na kompie nie wchodzi w grę bo jest to typ zadań jakie mają być na kolokwium :) na kartce trzeba napisać :) Dzięki wszystkim za odpowiedzi i pomoc!!!

Podobne pytania

0 głosów
1 odpowiedź 207 wizyt
pytanie zadane 22 listopada 2018 w C i C++ przez jakubkoksik Początkujący (260 p.)
0 głosów
2 odpowiedzi 306 wizyt
pytanie zadane 4 marca 2018 w C i C++ przez Mateusz Tocha Bywalec (2,560 p.)
0 głosów
1 odpowiedź 182 wizyt
pytanie zadane 18 lipca 2019 w Python przez RafalS VIP (122,820 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...