c++のメンバ変数の数を取得する方法について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
TK fromE

c++のメンバ変数の数を取得する方法について

#1

投稿記事 by TK fromE » 5年前

はじめまして、c++を始めて一年くらいの初心者です。
プログラミングをしている中で、自分のクラスが持ってるメンバ変数の数を取得したいのですが方法が分からず...
もしわかる方がいれば御教授いただきたいと思っております。

例えば

コード:

class hogehoge{
private:
    int m_hoge;
    int m_hoge2;
}
というクラスの場合、メンバ変数の数である2を取得する方法を知りたいです。
また今後メンバ変数が増えた場合はほぼメンテナンスなしで、3とか4とかの値が取得できるようにしていきたいです。
以上です。よろしくお願いいたします。

アバター
tk-xleader
記事: 158
登録日時: 13年前
連絡を取る:

Re: c++のメンバ変数の数を取得する方法について

#2

投稿記事 by tk-xleader » 5年前

C++にはリフレクションがありませんから、一般的にはクラスのメンバ変数の数を取得する方法はありません。

クラスのメンバ変数の数を取得出来るようにするには、メンバをstd::tuple型にするとか、std::arrayにするとかといった方法はあります。あるいは、外部ライブラリに頼ってもいいのであれば、boost.fusionやboost.hanaを使うとかいう方法もあります。

返信

“C言語何でも質問掲示板” へ戻る