definicja funkcji

0

Jakiego typu ma być argument funkcji, aby do niego można było przekazać parę zmiennych różnych typów:
Chodzi o coś takiego:

void funkcja(???? x)
{
if(x jest typu int) to cośtam...
else if(x jest typu unsigned int) to cośinnego...
else if(x jest typu char) to znowu cośtam...
itd.
}

Nie wiem co dać w nawiasie aby za argument x można było podstawić zmienną typu np. char bądź int bądź string. I jak potem w samej już funkcji sprawdzać jaki typ argumentu jest???

0
void funkcja(int zuo) 
{
  std::cout << "int " << zuo << '\n';
}
void funkcja(const std::string& zuezuo) 
{ 
  std::cout << "string " << zuezuo << '\n';
}
0
  1. void to nie funkcja tylko procedura (to tak na przyszłośc - funkcja zwraca jakas wartośc na pomocą return)
    [..ciach..]
0
Matijas6113 napisał(a)
  1. void to nie funkcja tylko procedura (to tak na przyszłośc - funkcja zwraca jakas wartośc na pomocą return)

C++ to nie pascal, tutaj nie istnieje pojęcie procedury... poza tym co powiesz na:

void fun1() {}
void fun2() { return fun1(); }

Poza tym taka konwencja nazw jaką zastosowałeś jest totalnie niespotykana...

Użycie struktur jest zaś delikatnie mówiąc nie na miejscu, nie ma związku z problemem. Tak jak napisał manfredek - przeciążanie funkcji lub ew. funkcja szablonowa ze specjalizacją. Noo.. ew. można się posłużyć boost::any lub boost::variant, wtedy faktycznie można to oifować.

0

Nie ma to jak jałowe spory w kwestii semantyki.

@TOPIC:
sprecyzuj jakie i jak będziesz dostarczał dane do tej funkcji/procedury i czy będziesz wywoływał ją normalnie czy może przez pośrednictwo jakiegoś wskaźnika.
poza przeładowaniem funkcji (rozwiązanie powyżej), można zastosować inne sztuczki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1