首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大班中的小班

大班中的小班
EN

Stack Overflow用户
提问于 2013-09-03 17:32:09
回答 2查看 77关注 0票数 0

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

代码语言:javascript
复制
class CA
{
public:
var1;
var2;
var3;
member_func();
member_func();
member_func();
QMutex      memoryMutex_mono; //another class
};

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

请在这个项目中指导我。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2013-09-03 17:37:23

如果我没理解错的话,你想要一个成员函数更少的类。

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

就像这样

代码语言:javascript
复制
struct BasicObject
{
    var1;
    var2;
    var3;
    member_func1();
}

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

但就像我在我的评论中所说的,这实际上与对象的大小无关,因为只有成员变量才会占用对象的空间,而不是它的成员函数。

票数 2
EN

Stack Overflow用户

发布于 2013-09-03 17:41:59

听起来你只想获取一些数据,所以你可以定义一个结构来保存这些数据:

代码语言:javascript
复制
typedef struct smallDataUnit
{
    int a;
    float b;
    uint32_t c;
}

然后使用"get“成员函数返回您想要的数据:

代码语言:javascript
复制
smallDataUnit member_func_get_small_data()
{
    smallDataUnit data;
    data.a = member_a;
    data.b = member_b;
    data.c = member_c;

    return data;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18588767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档