小班的大班

时间:2013-09-03 09:32:09

标签: c++ class return

我正在做一个项目,我需要返回一个类,但该类有很多成员函数,但我只想返回特定的变量。这个班级是这样的

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

有没有办法让我只返回前三个变量而不返回所有成员函数。此外,共有15个变量,共有6个成员函数。

请在这个项目中指导我。

由于

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你需要一个成员函数较少的类。

您可以通过使用继承来解决这个问题,方法是创建一个更基本的类来处理由具有更多成员函数的另一个类继承的最小值(以及将使用的那个)。

这样的东西
struct BasicObject
{
    var1;
    var2;
    var3;
    member_func1();
}

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

但正如我在评论中所说,对象的大小实际上并不重要,因为只有成员变量会占用对象的空间,而不是其成员函数。

答案 1 :(得分: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;
}