0

クラスを返す必要があるプロジェクトを行っていますが、クラスには多くのメンバー関数がありますが、特定の変数を返したいだけです。クラスはこんな感じ

class CA
{
public:
var1;
var2;
var3;
member_func();
member_func();
member_func();
QMutex      memoryMutex_mono; //another class
};

すべてのメンバー関数を返すことなく、最初の 3 つの変数のみを返す方法はありますか? また、6 つのメンバー関数を持つ合計 15 の変数があります。

このプロジェクトで私を導いてください。

ありがとう

4

2 に答える 2

2

私の理解が正しければ、メンバー関数の少ないクラスが必要です。

継承を使用して、より多くのメンバー関数を持つ別のクラスによって継承される最小限の (そして使用するものになる) を処理するより基本的なクラスを作成することで、これを解決できます。

何かのようなもの

struct BasicObject
{
    var1;
    var2;
    var3;
    member_func1();
}

struct FullObject : public BasicObject
{
    member_func2();
    member_func3();
}

しかし、コメントで述べたように、実際にはオブジェクトのサイズは問題になりません。メンバー関数ではなく、メンバー変数のみがオブジェクト内のスペースを占めるためです。

于 2013-09-03T09:37:22.647 に答える
0

一部のデータのみを取得したいように聞こえるので、そのデータを保持する構造体を定義できます。

typedef struct smallDataUnit
{
    int a;
    float b;
    uint32_t c;
}

次に、「get」メンバー関数を使用して、必要なデータを返します。

smallDataUnit member_func_get_small_data()
{
    smallDataUnit data;
    data.a = member_a;
    data.b = member_b;
    data.c = member_c;

    return data;
}
于 2013-09-03T09:41:59.027 に答える