C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でのオブジェクトスライス


オブジェクトスライスは、派生クラスのオブジェクトを基本クラスのインスタンスに割り当てるときの状況を説明するために使用されます。これにより、派生クラスオブジェクトのメソッドとメンバー変数が失われます。これは、情報が切り取られることと呼ばれます。たとえば、

class Foo {
   int a;
};
class Bar : public Foo {
   int b;
}

BarはFooを拡張するため、aとbの2つのメンバー変数があります。したがって、タイプBarの変数バーを作成してからタイプFooの変数を作成し、バーを割り当てると、プロセスでメンバー変数bが失われます。たとえば、

Bar bar;
Foo foo = bar;

この場合、約bの情報はバーで失われます。これは、メンバースライスと呼ばれます。


  1. C ++の標準入力ストリーム(cin)

    std ::cinは、クラスistreamのオブジェクトであり、(char型の)狭い文字に向けられた標準の入力ストリームを表します。 Cストリームstdinに対応します。標準の入力ストリームは、環境によって決定される文字のソースです。通常、キーボードやファイルなどの外部ソースからの入力と見なされます。 )を使用してフォーマットされたデータとして、またはreadなどのメンバー関数を使用してフォーマットされていないデータとして取得できます。オブジェクトは、外部リンケージと静的期間を使用してヘッダーで宣言されます。これは、プログラムの期間全体にわたって持続します。 このオブジェクトを使用して、標準入

  2. C ++でPythonオブジェクトを使用する方法は?

    これは、単純なPythonオブジェクトがラップされて埋め込まれている例です。これには.cを使用していますが、c++にも同様の手順があります- class PyClass(object):     def __init__(self):         self.data = []     def add(self, val):         self.data.append(val)     def __str__(self):