friend
Kiedy należy używać 'friend' w C++?
Czytałem C++ FAQ i byłem ciekawy friend deklaracja. Osobiście nigdy z niego nie korzystałem, jednak jestem zainteresowany p ... las. Jednak nie jestem pewien, jak to nie przerywa enkapsulacji. Kiedy te wyjątki mogą trzymać się ścisłości, która jest OOP?
funkcja wymiany znajomych publicznych
W pięknej odpowiedzi na copy-and-swap-idiom jest kawałek kodu, który potrzebuję pomocy:
class dumb_array
{
public:
// ... cić friend iter begin() i friend iter end() w ten sam sposób wewnątrz klasy? Myślę, że {[1] } nie jest tu potrzebny, prawda?
overloading friend operator
Przeczytałem kilka pytań dotyczących mojego problemu na StackOverflow.com i nic z tego nie rozwiązuje mojego problemu. A może ... T>
ostream& operator<<(ostream &os, const D<classT>& rhs)
{
os << rhs.d;
return os;
}
Dlaczego C# nie zawiera słowa kluczowego "przyjaciel" w stylu C++? [zamknięte]
zamknięte . To pytanie jest oparte na opinii . Obecnie nie przyjmuje odpowiedzi.
... eniu na dostęp internal członków, podczas gdy friend pozwala dać pewnej klasie pełny dostęp do dokładnie one other class)
clean C++ granul friend equivalent? (Odpowiedź: Idiom Adwokat-Klient)
Dlaczego C++ ma public członków, do których każdy może zadzwonić i friend deklaracje, które ujawniają wszystkie private Człon ... ej obraca się wokół forwarding Call boilerplate, że bardzo podobny "klucz" idiom uniknąć kosztem mniej bezpośredniej ochrony.
funkcje 'friend' i przeciążenie
W projekcie, nad którym pracuję, mam Score klasę, zdefiniowaną poniżej w score.h. Staram się ją przeciążyć, więc gdy na niej ... etName(string name);
bool operator>(const Score right) const;
private:
string _name;
int _points;
};
#endif
Dlaczego C++ nie pozwala na dziedziczenie przyjaźni?
Dlaczego przyjaźń nie jest przynajmniej opcjonalnie dziedziczona w C++? Rozumiem, że przechodniość i refleksyjność są zakaza ... kcja i ewolucja C++, które widziałem wystarczająco dużo ludzi tutaj polecam, aby uzyskać lepszy wgląd w tego typu pytania ...
Czy możemy zwiększyć możliwości ponownego wykorzystania tego wzorca ochrony dostępu zorientowanego na klucz?
Czy możemy zwiększyć re-usability dla tego wzorca ochrony dostępu zorientowanego na klucz :
class SomeKey {
friend cl ... oryginalną klasę (jeden atrapa parametru na metodę)
(dyskusja poboczna rozwinięta w to pytanie , więc otwieram to pytanie.)
Dlaczego Klasa C++ friend potrzebuje deklaracji forward tylko w innych przestrzeniach nazw?
Załóżmy, że mam klasę F, która powinna być przyjazna klasom G (w globalnej przestrzeni nazw) i C (w przestrzeni nazw A).
by ... ;
};
int main()
{
F f;
}
Wydaje mi się to niespójne. Czy jest ku temu jakiś powód, czy tylko decyzja projektowa normy?
Friend declaration w C++ - różnica między publicznym a prywatnym
Ktoś mi powiedział, że jest różnica między ogłoszeniem klasy przyjaciół w publicznych lub prywatnych obszarach klasy, ale nie ... class B;
};
I
class A
{
private: //or nothing as the default is private
friend class B;
};
Jest jakaś różnica?
Co jest złego w uczynieniu testu jednostkowego przyjacielem klasy, którą testuje? [duplikat]
To pytanie ma już odpowiedź tutaj:
Jak przetestować prywatną funkcję lub klasę, która ma prywatne metody ... y mi wyjaśnić te powody bardziej, abym mógł lepiej zrozumieć? Nie rozumiem po co używać przyjaciela testy jednostkowe są złe.
Friend scope w C++
Jeśli mam trzy klasy, A, B, C. A i B są przyjaciółmi (dwukierunkowo). Ponadto B I C są przyjaciółmi (dwukierunkowo). A ma wsk ... anych C przez wskaźnik?
Dla wyjaśnienia: jest to czysto teoretyczne pytanie w języku C++, a nie pytanie o porady projektowe.
Jaki jest zakres funkcji inline friend?
Po przeszukaniu aroung SO, jedno pytanie nauczyło mnie, że leksykalny zakres funkcji inline friend to klasa, w której jest zd ... ::bar’
prog.cpp: In member function ‘void foo::bar::call_friend()’:
prog.cpp:15: error: ‘baz’ was not declared in this scope
Czy wewnętrzne klasy w C++ są automatycznie znajomymi?
Jeśli zdefiniuję klasę wewnętrzną w C++, czy jest to automatycznie znajomy klasy, która ją zawiera? Na przykład, czy jest to ... C++ spec na ten temat, a jeśli ktoś może przytoczyć coś konkretnego, co powie, że jest LUB NIE JEST LEGALNE, byłoby świetnie.
Funkcja access friend zdefiniowana w klasie
Istnieje taki kod:
#include <iostream>
class A{
public:
friend void fun(A a){std::cout << "Im here" <& ... ope
//A::fun2(); error: 'fun2' is not a member of 'A'
fun3(); // works ok
}
Jak uzyskać dostęp do funkcji fun2 ()?
friend declaration deklaruje funkcję nie-szablonową [duplikat]
To pytanie ma już odpowiedź tutaj:
overloading friend operator
5 ... e<T> *e) {
out << e->data;
return out;
}
Czytałem gdzie indziej w Internecie, że umieszczenie pomiędzy
Uczynienie parametru szablonu przyjacielem?
Przykład:
template<class T>
class Base {
public:
Base();
friend class T;
};
Teraz to nie działa... Jest na ... tutaj )
Wiem, że istnieją inne sposoby na zrobienie tego, ale teraz jestem ciekawa, czy naprawdę możesz zrobić coś takiego.
declare template friend function of template class
Mam szablon klasy Obj i szablon funkcji make_obj. Obj ma zdefiniowany pojedynczy konstruktor private, który odwołuje się do ... uje zrobić make_obj("hello"); dla przykładowych celów.
Jak mogę zezwolić tylko make_obj na dostęp do kontenera wartości Obj?
Kiedy używać klasy friend w C++ [duplicate]
Możliwy duplikat:Kiedy należy używać 'friend' w C++?
Odświeżałem mój C++ (jestem programistą Javy) i natknąłem się n ... a, która nie dodaje prawdziwej wartości, z wyjątkiem mylenia ludzi patrząc na Twój kod, dopóki nie zorientują się, co robisz?
Zezwalanie klasie "przyjaciel" na dostęp tylko do niektórych prywatnych członków
Załóżmy, że mam trzy klasy C++: FooA, FooB i FooC.
FooA ma funkcję member o nazwie Hello, chcę wywołać tę funkcję w klasie F ... objA.Hello2() // compile error
objA.Hello3() // compile error
ojbA.m_iData = 0; // compile error
}
};
- 1
- 2