C ++のドット(。)演算子と->の違いは何ですか?
ドットと矢印の演算子は、どちらもC++でクラスのメンバーにアクセスするために使用されます。それらはさまざまなシナリオで使用されます。 C ++では、class、struct、またはunionとして宣言された型は、「クラス型」と見なされます。したがって、以下は3つすべてを指します。
- a.bは、bがオブジェクトのメンバー(またはオブジェクトへの参照[1])である場合にのみ使用されます。したがって、a.bの場合、aは常にクラスの実際のオブジェクト(またはオブジェクトへの参照)になります。
- a→bは基本的に(* a).bの省略表記です。つまり、aがオブジェクトへのポインタである場合、a→bはポイントが指すオブジェクトのプロパティbにアクセスしています。 。
[1]参照は、意味的にはオブジェクトのエイリアスであるため、#3にも「またはポインタへの参照」を追加する必要があります。ただし、ポインタ(T *&)への参照が使用されることはめったにないため、これは役立つというよりも混乱を招くと思いました。
#include<iostream> class A { public: int b; A() { b = 5; } }; int main() { A a = A(); A* x = &a; std::cout << "a.b = " << a.b << "\n"; std::cout << "x->b = " << x->b << "\n"; return 0; }
5 5
-
C#のインターフェイスとクラスの違いは何ですか?
インターフェイスは、フィールドまたはメソッドの実装がないクラスです。定義したメソッドを実装することはできません。 クラスは通常、インターフェースで定義されたメソッドを実装します。 インターフェース インターフェイスは、インターフェイスのメンバーであるプロパティ、メソッド、およびイベントを定義します。インターフェイスには、メンバーの宣言のみが含まれます。メンバーを定義するのは、派生クラスの責任です。 public interface interface_name { // interface_members } クラス クラスはデータ型の青写真です。これは実際には
-
Pythonの=演算子と==演算子の違いは何ですか?
Pythonでは、シンボルは割り当てとして定義されます オペレーター。左側に1つの変数、右側に式が必要です。右側の式の値は、左側の変数に割り当てられます。変数の式と名前は互換性がありません。 >>> a=10 >>> b=20 >>> c=a+b >>> a,b,c (10, 20, 30) >>> a+b=c SyntaxError: can't assign to operator ==記号は比較演算子であり、等しいと呼ばれます オペレーター。いずれかの側のオペランドが等しい場合はtrueを