Resultados de la búsqueda a petición "friend"

2 la respuesta

En C ++, ¿por qué no es posible hacer amigo de una función miembro de clase de plantilla usando el tipo de plantilla de otra clase?

En otras palabras, por qué esto compila bien: template<typename Type> class A{ public: void f(); }; class B{ friend void A<int>::f(); }; template<> void A<int>::f(){ B* var = new B(); }Si bien esto no: template<typename Type> class A{ public: ...

1 la respuesta

¿Se define una función de amigo en clase automáticamente en línea?

Si una función miembro se define dentro de la clase, es una función en línea. P.ej. struct X { void mem_f() {} //mem_f is inline };Mi pregunta es si una función de amigo no miembro definida dentro de la clase también está automáticamente ...

3 la respuesta

Sobrecarga de operador amigo plantilla C ++

¿Qué tiene de malo mi código? template<int E, int F> class Float { friend Float<E, F> operator+ (const Float<E, F> &lhs, const Float<E, F> &rhs); };G ++ solo mantiene la advertencia: float.h:7: warning: friend declaration ‘Float<E, F> ...

3 la respuesta

Hacer una clase indefinida como amigo y definirla más tarde

Haciendo un amigo desconocido template<typename T> class List { protected: class a { int x; int y; private: friend class b; // <------------ Why this is not an error? }; template <typename U > class b { //If that is not a error this should be an ...

3 la respuesta

¿Conceder acceso al constructor privado sin amigos?

Estoy trabajando en algún código, donde encontré una situación similar a esta: struct Bar; struct Foo{ friend struct Bar; private: Foo(){} void f(){} void g(){} }; struct Bar { Foo* f; Bar() { f = new Foo();} ~Bar() { delete f;} }; int main(){ ...

1 la respuesta

¿Cuál es la forma correcta de escribir declaraciones de función amiga en la clase de plantilla?

Estoy tratando de escribir mi propia clase de plantilla de vectores, pero tengo algunos problemas al escribir declaraciones de funciones de amigos. Al principio escribí así: template <typename T, typename Alloc = std::allocator<T>> class vector ...

5 la respuesta

Alcance de amigo en C ++

Si tengo tres clases, A, B, C. A y B son amigos (bidireccionalmente). Además, B y C son amigos (bidireccionalmente). A tiene un puntero a B y B tiene un puntero a C. ¿Por qué A no puede acceder a los datos privados de C a través del ...

3 la respuesta

¿Por qué una clase amiga C ++ necesita una declaración de reenvío solo en otros espacios de nombres?

Supongamos que tengo una claseF eso debería ser amigo de las clasesG (en el espacio de nombres global) yC (en espacio de nombresA) ser amigo deA::C, F debe ser declarada hacia adelante.ser amigo deG, sin declaración adelantada deF es ...

5 la respuesta

sobrecargando el operador amigo << para la clase de plantilla

He leído un par de preguntas sobre mi problema en StackOverflow.com ahora, y ninguna de ellas parece resolver mi problema. O tal vez lo he hecho mal ... El sobrecargado<< funciona si lo convierto en una función en línea. Pero, ¿cómo hago para que ...

1 la respuesta

¿Cuál es el punto de las complicadas reglas de alcance para las declaraciones de amigos?

ecientemente descubrí que el alcance de las declaraciones de amigos sigue a reglas extremadamente peculiares [https://stackoverflow.com/q/8207633/214671] - Si tienes unfriend declaración (definición) para una función o una clase que aún no se ha ...