22

私はこのリソースを見ています:

http://www.cplusplus.com/reference/vector/vector/

たとえば、クラスベクトルのイテレータメンバータイプ。

「メンバー型」は、単純にtypedefまたはベクタークラスに類似したものとして実装されますか?「メンバータイプ」が実際に何を意味するのかは私にはわかりません。C++の教科書をいくつか見てきましたが、このフレーズについてはまったく触れていません。

4

3 に答える 3

40

C++ 標準でも、このフレーズは使用されていません。代わりに、ネストされた型名(§9.9) と呼びます。

入手方法は以下の4通りあります。

class C
{
public:
   typedef int int_type;       // as a nested typedef-name
   using float_type = float;   // C++11: typedef-name declared using 'using'

   class inner_type { /*...*/ };   // as a nested class or struct

   enum enum_type { one, two, three };  // nested enum (or 'enum class' in C++11)
};

ネストされた型名はクラス スコープで定義され、そのスコープ外からそれらを参照するには、名前修飾が必要です。

int_type     a1;          // error, 'int_type' not known
C::int_type  a2;          // OK
C::enum_type a3 = C::one; // OK
于 2012-12-26T07:42:06.493 に答える
2

メンバータイプは、(そのクラスの)メンバーであるタイプを単に表します。それはtypedefあなたが言うように(vectorそれがそうである可能性が高い場合T*)またはネストされているclass(またはstruct)可能性があります。

于 2012-12-26T07:31:24.953 に答える
2

メンバー型は、「ネストされたクラス」または「ネストされた構造」を参照する場合があります。別のクラス内のクラスを意味します。テキストブックを参照したい場合は、「ネストされたクラス」を検索してください。

于 2012-12-26T07:35:21.430 に答える