Autor Wątek: Funkcja zwracająca.  (Przeczytany 1874 razy)

Offline Speedhero2

  • Użytkownik

# Styczeń 24, 2016, 21:50:30
Proszę o szybką pomoc:
Jak skonstruować funkcje która pod koniec będzie zwracała wartość sf::TcpSocket client; ??

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline ArekBal

  • Użytkownik

# Styczeń 24, 2016, 21:57:20
Przyjąć i zwrócić referencje... konstruktora move brak.

Możesz też utworzyć unique pointer i jego zwrócić.

Możesz też dziedziczyć i dodać move ale to zły pomysł jest.
« Ostatnia zmiana: Styczeń 24, 2016, 21:59:25 wysłana przez ArekBal »

Offline Speedhero2

  • Użytkownik

# Styczeń 24, 2016, 22:02:09
Jakiś przykład bym prosił bo zielony w tym jestem ;c

Wymyśliłem coś takiego, ale dalej to nic nie daje:

http://codepad.org/XcHTDrRT
« Ostatnia zmiana: Styczeń 24, 2016, 22:03:46 wysłana przez Speedhero2 »

Offline Risist

  • Użytkownik

# Styczeń 25, 2016, 23:54:50
Zacznijmy od tego, że pytanie jest źle zadane.

Będę wredny i odpowiem na dokładnie to co zostało napisane:

sf::TcpSocket client; // tak aby był dostęp z funkcji, np. gdzieś globalnie

// dosłownie funkcja zwracająca wartość :P
sf::TcpSocket f()
{
return client;
}


Offline remz

  • Użytkownik

# Styczeń 26, 2016, 00:31:22
std::unique_ptr<sf::TcpSocket> createSocket()
{
    std::unique_ptr<sf::TcpSocket> socket(new sf::TcpSocket());
    //...
    return socket;
}

Albo po prostu zamień
sf::TcpSocket connections()na
sf::TcpSocket* connections()i wywal * z
return *client;
« Ostatnia zmiana: Styczeń 26, 2016, 00:33:46 wysłana przez remz »

Offline ArekBal

  • Użytkownik

# Styczeń 26, 2016, 11:35:01

void initClient(sf::TcpSocket& client)
{
  // init code... whatever
}

//......

sf::TcpSocket client;

initClient(client);