0

这段代码:

struct TToken
{
    UnicodeString &DBIDs;
    std::vector<TToken> T;
    TToken(UnicodeString &DI) : DBIDs(DI) {}
    void Append(void) {T.push_back(TToken(DBIDs));}
};

UnicodeString DI="25,40,55";
TToken T(DI);
if (T.DBIDs==DI) // if I comment out this comparison it works fine
....

生成上述编译器错误(我使用的是 C++Builder 10.1 Berlin)。

如果我更改对UnicodeString指针的引用,一切都会按预期工作。有谁知道为什么引用会产生错误?

顺便说一句,有没有一种更简单的方法DBIDs可以让每个创建vector的元素都可以使用,而不是一直传递指针/引用?static会员不好,我确实看过模板表达式,但无法得到可接受的答案。

4

0 回答 0