gpt4 book ai didi

c++ - C++ 中的函数引用和 assert(0)

转载 作者:行者123 更新时间:2023-11-30 00:54:00 26 4
gpt4 key购买 nike

我想了解 fetch().textassert(0) 下面做了什么。我不熟悉像 fetch() 这样可以引用返回类型成员的函数,即 fetch().text。这是通过使用 assert(0) 以某种方式启用的吗?

class SimpleS{ 

struct internal_element {
const char *text;
};

class SimpleE {
public:

SimpleE() {
}

const char* text() const {
return fetch().text;
}

void set_text(const char *text) {
fetch().text = text;
}

private:

internal_element& fetch() const {
... // some code
assert(0);
}
}

最佳答案

断言与此无关。这里发生的事情是 fetch() 返回对 internal_element 的引用。这使您能够在返回值中引用该结构的成员:

fetch().text

指的是fetch()返回的internal_element对象的internal_element::text成员。

至于为什么那里有一个assert(0),不知道。你没有给我们密码。通常,当一个函数以这样的断言结束时,是因为程序员想要捕获他没有涵盖某些可能性的情况。例如:

if (condition)
//...
else if (condition)
//...
// We should have covered all possible conditions above and already
// returned. If we actually get here, then we did something wrong.
assert(0);

关于c++ - C++ 中的函数引用和 assert(0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15037515/

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