Chciałam tylko poznać różnicę między. operator i :: operator?jaka jest różnica między operatorem kropki a operatorem rozdzielczości zakresu
Odpowiedz
Ta pierwsza (kropka, .
) służy do uzyskiwania dostępu do elementów obiektu, druga (dwukropek, ::
) jest używana do uzyskiwania dostępu do członków przestrzeni nazw lub klas.
Rozważ poniższe ustawienia.
namespace ns {
struct type
{
int var;
};
}
W tym przypadku, w odniesieniu do struktury, która jest członkiem nazw, należy użyć ::
. Aby uzyskać dostęp do zmiennej w obiekcie typu type
, należy użyć .
.
ns::type obj;
obj.var = 1;
Jeśli używasz wskaźnik do instancji obiektu, będziesz miał dostęp do członków obiektu za pomocą -> w miejscu „kropką”
Nie musisz * musieć * - 'p-> m' jest po prostu syntaktycznym cukrem dla' (* p) .m';) – fredoverflow
Innym sposobem, aby myśleć o Quad kropka "::" to scope resolution operator.
W przypadkach, gdy istnieje więcej niż jeden obiekt w zakresie, które mają tę samą nazwę. Jawnie zadeklarować, który z nich korzystać: ''
std::min(item, item2);
lub
mycustom::min(item, item2);
operatora kropka jest wywołanie metody i atrybuty instancji obiektu
Myobject myobject;
myobject.doWork();
myobject.count = 0;
// etc
Nie pytano, ale jest inny operator w użyciu, jeśli instancja obiektu jest tworzony dynamicznie new
, to operator strzałka „->”
- 1. Różnica między operatorem globalnym a operatorem członkowskim
- 2. Jaka jest różnica między operatorem * i operatorem w programie c?
- 3. Jaka jest różnica między jawnym obciążeniem/magazynem a zwykłym operatorem = a operatorem T?
- 4. Różnica między operatorem kropki a pełnoprawnym nazwanym wywołaniem w Clojure
- 5. W tensorflow jaka jest różnica między tf.add a operatorem (+)?
- 6. Jaka jest różnica między operatorem zwarć Perla (lub, i) a (||, &&)?
- 7. Jaka jest różnica między isEqualToString a operatorem == w Objective C?
- 8. Jaka jest różnica między operatorem Java equals() i C++ ==?
- 9. Jaka jest różnica między operatorem "+" w ggplot2 i operatorem "%>%" w magrittr?
- 10. Jaka jest różnica między operatorem "=" i "==" w Bash?
- 11. Różnica między operatorem potęgowania ECMAScript 2016 a Math.pow()
- 12. Dlaczego sizeof jest operatorem?
- 13. LINQ Między operatorem
- 14. Jaka jest różnica między operatorem >>> w Javie i JavaScript?
- 15. Jaka jest różnica między operatorem publikowania i multiemisji w programie rxjs 5?
- 16. Jaka jest różnica między `-Contains` i` -In` w PowerShell?
- 17. Różnica między operatorem lambda i -> w Rubim
- 18. Zmniejszenie duplikacji kodu między operatorem = a konstruktorem kopiującym
- 19. Wybierz skrzynkę z operatorem "Jest"
- 20. bitowe I w Javie z operatorem „&”
- 21. Różnica między "używaniem" a określaniem zakresu?
- 22. Jaka jest różnica między "||" operator i funkcja concat w Oracle?
- 23. laravel Eloquent jak korzystać między operatorem
- 24. Jaka jest różnica między cat_id a term_id?
- 25. Jaka jest różnica między IEnumerable a tablicami?
- 26. Jaka jest różnica między == a === w Verilog?
- 27. Jaka jest różnica między UseCase a Workflow?
- 28. Jaka jest różnica między pakietem a intencją?
- 29. Jaka jest różnica między węzłem a wierzchołkiem?
- 30. Jaka jest różnica między Ember.computed.alias a Ember.binding?
więc, jeśli używamy obiektu, aby uzyskać dostęp do czegoś, to musimy użyć operatora kropki, a jeśli używamy nazwy klasy, to musimy użyć ::, prawda ?, czy możesz podać przykład również, Jeśli nie masz nic przeciwko! – defiant
@oDx, to jest poprawne, więc jeśli masz zmienną statyczną lub funkcję klasy, użyjesz "::" z nazwą klasy do odniesienia się do nich, natomiast jeśli masz funkcję członka lub zmienną członka, możesz użyłby "." z nazwą instancji klasy. –