gpt4 book ai didi

mysql - c++ - 堆对象成员函数访问

转载 作者:行者123 更新时间:2023-11-29 20:54:07 27 4
gpt4 key购买 nike

我不太确定我应该问哪个问题,所以我将讨论错误出现的位置。

我正在开发一个程序,用于将报价数据从 Interactive Brokers 流式传输到 MySQL 数据库。为了消除流 dl 速度和 MySQL 写入速度之间的差异可能出现的任何瓶颈,我尝试实现一个临时存储 Tick 对象的队列类。代码:

    TickQueue::TickQueue()
{
tickQueue = new std::queue<Tick>;
}

TickQueue::~TickQueue()
{
delete tickQueue;
}

void TickQueue::add(Tick t)
{
tickQueue->push(t);
}

int main()
{
time_t dt = time(0);
struct tm currTime;
localtime_s(&currTime, &dt);
TickQueue tq;

for (int i = 0; i < 5; ++i)
{
Tick tTick("fx", 1.2151, "SYM", i, currTime); tq.add(tTick);
}

if (tq.size() == 5) { cout << "success" << endl; }



return 0;
}

为了保持它的持久性,我决定在堆上初始化它。但是,我有一种感觉,这可能不是最好的实现。

我也无法访问 tq.size(),因为 size() 不是 tq 的成员函数。有没有办法构造一个新对象并让它继承其底层结构的成员(在本例中为 std::queue )

最佳答案

当您声明TickQueue时,您将一个成员放入其中,如下所示:

std::queue<Tick> *tickQueue;

也就是说,你是说TickQueue '有一个'queue<Tick>里面。

相反,声明 TickQueue像这样:

class TickQueue : public std::queue<Tick> {
}; // TickQueue

现在你是说TickQueue '是一个'queue<Tick> ,并继承其所有方法。

关于mysql - c++ - 堆对象成员函数访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37770232/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com