I just learned about typedef. Suppose I have an instance:
private:
typedef std::string int doubles abc;
when I make an accessors to instance abc:
returnType get(){...}
what should I put in the returnType? is it abc or the data type? thx
I just learned about typedef. Suppose I have an instance:
private:
typedef std::string int doubles abc;
when I make an accessors to instance abc:
returnType get(){...}
what should I put in the returnType? is it abc or the data type? thx
ここで何をしたいのかわかりません。あなたtypedef
は無効な構文であり、「doubles」はC ++タイプではありません(ただし、おそらくタイプミスです)。有効な構文の例は次のとおりです。
typedef std::string abc;
typedef int foo;
...
typedef
その後、他のタイプと同じように、関数内シグネチャを使用できます。
abc getValue();
ただし、パブリックメンバー関数で使用する場合は、クラスtypedef
の一部にを配置する必要があります。また、クラス外のコードは、再度'dされない限り、常にクラスの名前のpublic
プレフィックスを付ける必要があることに注意してください。typedef
typedef
class SomeClass {
public:
typedef std::string foo;
};
// Somewhere outside SomeClass
SomeClass::foo bar = ...
typedef SomeClass::foo localFoo;
localFoo fooBar = ...;
それとは別にtypedef
、変数に複数の型を表す方法はありません。C ++は静的に型付けされた言語であるため、これを直接行うことはできません。ただし、次のことができます。
union
、現在保存しているタイプを保存しますvoid*
とキャスト-お勧めしません!boost::variant
なものを使用するboost::any
編集:最後に、「インスタンス」という用語の使用について:これは通常、クラスのインスタンス、つまりクラスに属する特定のオブジェクトを指すために使用されます。つまり、「メンバー変数」です。