Solo quería saber la diferencia entre. operador y :: operador?cuál es la diferencia entre operador de punto y operador de resolución de alcance
Respuesta
El primero (punto, .
) se utiliza para acceder a los miembros de un objeto, el último (dos puntos, ::
) se utiliza para acceder a los miembros de un espacio de nombres o una clase.
Considere la siguiente configuración.
namespace ns {
struct type
{
int var;
};
}
En este caso, para referirse a la estructura, que es miembro de un espacio de nombres, se utiliza ::
. Para acceder a la variable en un objeto del tipo type
, usa .
.
ns::type obj;
obj.var = 1;
Si está utilizando un puntero a una instancia de objeto, tendrá que acceder a los miembros del objeto utilizando -> en lugar del "punto"
No * tiene que * - 'p-> m' es simplemente azúcar sintáctica para' (* p) .m';) – fredoverflow
Otra forma de pensar en la quad- dot '::' es scope resolution operator.
En los casos en que hay más de un objeto en el alcance que tienen el mismo nombre. Se declara explícitamente cuál usar: ''
std::min(item, item2);
o
mycustom::min(item, item2);
El operador punto es llamar a los métodos y atributos de una instancia de objeto
Myobject myobject;
myobject.doWork();
myobject.count = 0;
// etc
No se le pidió, pero hay otro operador a utilizar si una instancia de objeto se crea dinámicamente con new
, es el operador de flecha '->'
Myobject myobject2 = new Myobject();
myobject2->doWork();
myobject2->count = 1;
- 1. ¿Cuál es la diferencia entre '->' (operador de flecha) y '.' (operador de punto) en Objective-C?
- 2. Operador de resolución de alcance
- 3. operador de resolución de alcance sin ámbito
- 4. Operador de resolución de alcance :: versus operador de acceso de miembro. en C#
- 5. ¿Diferencia entre 'nuevo operador' y 'operador nuevo'?
- 6. ¿Cuál es la diferencia entre VBScript's y el operador &?
- 7. ¿Cuál es la diferencia entre el nuevo operador y Class.newInstance()?
- 8. ¿Cuál es la diferencia entre el operador "=" y "==" en Bash?
- 9. diferencia entre operador global y operador miembro
- 10. C# operador de alcance
- 11. Espacios de nombres y resolución de operador
- 12. operador de flecha vs. operador de punto
- 13. ¿Cuál es la diferencia entre los iguales de Java() y el operador de C++ ==?
- 14. ¿Cuál es la diferencia entre el alcance léxico y dinámico en Perl?
- 15. diferencia entre operador like y regex
- 16. ¿Cuál es el punto del operador unario plus en Ruby?
- 17. Diferencia entre C++ 0x lambdas y operador(), cierre y functor
- 18. ¿Cuál es la diferencia entre las cláusulas where y el operador && en LINQ-to-SQL?
- 19. En Actionscript 3, ¿cuál es la diferencia entre el operador "in" y el método "hasOwnProperty"?
- 20. ¿Cuál es la diferencia entre "||" operador y función concat en Oracle?
- 21. ¿Cuál es la diferencia cuando se aplica un nuevo operador?
- 22. ¿Cuál es la diferencia entre la seguridad punto a punto y de extremo a extremo?
- 23. ¿Cuál es el punto del operador nulo en JavaScript?
- 24. ¿Cuál es la diferencia entre is_a y instanceof?
- 25. Haskell operador punto
- 26. ¿Cuál es la diferencia entre el alcance de "importación" y la dependencia de tipo "pom"?
- 27. Diferencia entre == operador y el método Equals() en C#?
- 28. ¿cuál es la diferencia entre:.! y: r !?
- 29. ¿Diferencia entre operadores de dos puntos y flechas en PHP?
- 30. Operador de resolución de alcance en enumeraciones ¿una extensión específica del compilador?
Entonces, si usamos el objeto para acceder a algo, entonces tenemos que usar el operador punto, y si estamos usando un nombre de clase entonces tenemos que usar ::, ¿correcto ?, ¿puedes dar un ejemplo también, ¡si no te importa! – defiant
@oDx, eso es correcto, así que si tiene una variable estática o función de una clase, usaría "::" con el nombre de la clase para hacer referencia a ellos, mientras que si tiene una función de miembro o una variable de miembro, usaría "." con el nombre de una instancia de la clase. –