Prywatny konstruktor dostępny publicznie dla innej klasy?

0

Mam klasę dajmy to o nazwie AdressIP, klasa zawiera statyczną funkcję

AddresIP::Parse(const std::string& ip)

mam również klasę AddressIPParser, i ta klasa zawiera funkcję:

AddresIp AddresIPParser::ParseAddressIP(const std::string& ip)

i teraz chciałbym aby klasa AddresIP miała prywatny konstruktor, który otrzymuje już prawidłowe dane, chciałbym żeby był to prywatny konstruktor, ale wtedy funkcja

AddresIPParser::ParseAddressIP()

nie ma dostępu do tego konstruktora, jak zrobić żeby miała? Jak to rozkminić żeby działało?

dodanie znaczników <code class="cpp"> - fp

0

Użyć deklaracji przyjaźni między klasami.

1

Zawsze możesz je zaprzyjaźnić: http://www.cplusplus.com/doc/tutorial/inheritance/
Pytanie tylko dlaczego AddressIPParser nie może wywołać AddressIP::Parse()? Nasuwa mi się też od razu pytanie po co jest klasa AddressIPParser, skoro sama klasa AddressIP potrafi parsować?

0

Możesz zaprzyjaźnić te klasy ze sobą przez friend.

0

Ok, dzięki, zaprzyjaźniłem :)

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