在类'方法中初始化Class'对象成员

时间:2013-11-13 03:57:40

标签: c++ c++11

除了构造函数之外,是否可以在类的方法中实例化对象成员变量。我想这样做而不使用指针,因为我试图让我的代码使用更多的堆栈内存。 (我的教授这么说)

我之前看过这个,我发现的最接近的事情是外在的。这听起来很脏,我不确定这是不是我正在寻找的。

这就是我正在尝试做的事情,而我正试图在没有指针的情况下这样做:

class A
{
    private:
        B var;
    public:
        A();
        void setVar();
};

A::A()
{
}

void A::setVar()
{
    var = B(1,2);
}

class B
{
    public:
        B();
        B(int a, int b);
};

B::B()
{
}

B::B(int a, int b)
{
}

1 个答案:

答案 0 :(得分:2)

在堆栈上创建对象时,将自动在堆栈上创建非指针的成员变量。 (也就是说它们将成为堆栈中对象的一部分。)您可以通过至少两种方式将它们初始化为对象构造函数中的特定值:

A::A() : var (1,2)
{
}

A::A()
{
    var = B (1,2);
}