我有一个函数cleanup()
void cleanup() {
// blah
}
int main() {
// many variable initializations
// call cleanup
cleanup(this); // <--- can i do this?
}
我可以将main()传递给函数cleanup()吗? 并通过以下方式进行清理: 这 - &GT; something.close() 和 this-&gt; something = NULL
感谢。
答案 0 :(得分:1)
不,你不能这样做。 Application.cutcopymode = False
Application.cutcopymode = True
指针仅在您未使用的类的范围内可用。 this
函数未在类中定义。
另外,你不能在C ++中传递函数,因为它们不是“一等公民”。您需要使用函数指针来传递函数,即使这样,尝试传递main
也没有意义。这通常在需要回调时是有意义的,main
当然不能用于此目的。
我建议您开始使用C ++语言的入门教程,例如this one。
答案 1 :(得分:1)
RE
“我可以将
main()
传递给函数cleanup()
吗?
不,你不能 - 在正式的正确程序中 - 因为你不能使用main
的地址。
您可以简单地使用C ++析构函数,而不是命名的清理函数。让每个对象在它的析构函数中自行清理。这被称为 RAII :资源获取是初始化(好吧,它是一个愚蠢的缩写)。