【发布时间】:2012-02-18 02:13:14
【问题描述】:
这是我能解决的最简单的问题,抱歉篇幅太长:
#include <vector>
#include <iostream>
class Bar
{
private:
std::vector<int> intVector_;
public:
Bar() {};
void addInt(int newInt)
{
intVector_.push_back(newInt);
std::cout << intVector_.size() << " ";
};
int getIntVectorSize() { return intVector_.size(); };
};
class Foo
{
private:
Bar bar_;
public:
Foo() { bar_ = Bar(); };
Bar getBar() { return bar_; };
};
int main(char argc, char* argv[])
{
Foo foo = Foo();
foo.getBar().addInt(1);
std::cout << foo.getBar().getIntVectorSize() << " ";
foo.getBar().addInt(2);
std::cout << foo.getBar().getIntVectorSize() << " ";
foo.getBar().addInt(3);
std::cout << foo.getBar().getIntVectorSize() << " ";
}
我的问题是,在向量中添加一个 int 似乎只持续了addInt() 的持续时间。我的向量大小输出如下所示:
1 0 1 0 1 0
我对 C++ 和所有这些引用/指针业务相当陌生,所以我不知道如何解决这个问题,或者这是否可能。感谢您的帮助!
【问题讨论】: