C++ 将main()传递给C++;
我有一个函数cleanup()C++ 将main()传递给C++;,c++,C++,我有一个函数cleanup() void cleanup(){ //废话 } int main(){ //许多变量初始化 //呼叫清理 cleanup(this);//something.close() 及 这个->某物=NULL 谢谢。不,您不能这样做。此指针仅在未使用的类的范围内可用。主函数也未在类中定义 也不能在C++中传递函数,因为它们不是“一流公民”。您需要使用函数指针来传递函数,甚至是通过“代码>主代码< /代码>,这是没有意义的。当需要回调时,这通常是有意义的,而代码当然不适合于此
void cleanup(){
//废话
}
int main(){
//许多变量初始化
//呼叫清理
cleanup(this);//something.close()
及
这个->某物=NULL
谢谢。不,您不能这样做。此
指针仅在未使用的类的范围内可用。主
函数也未在类中定义
也不能在C++中传递函数,因为它们不是“一流公民”。您需要使用函数指针来传递函数,甚至是通过“代码>主代码< /代码>,这是没有意义的。当需要回调时,这通常是有意义的,而<>代码<主/代码>当然不适合于此目的。
<>我建议您开始使用C++语言的入门教程,例如.< /p> < P> Re/P>
“我可以将
main()
传递到函数cleanup()
不,您不能——在正式正确的程序中——因为您不允许使用main
的地址
<> P>而不是命名的清除函数,你可以简单地使用C++析构函数。让每个对象在它自己的析构函数中自己清理。这叫做“强> RAII<强”:资源获取是初始化(好,它是一个愚蠢的缩写)。,但在此之前,您应该了解类。您不需要清理main。一旦它超出范围(当您的程序结束时)任何变量都将返回到堆栈。通常您只需要担心动态分配的变量,但对于main,一旦程序结束,所有这些变量都将返回到操作系统。这看起来像是一个——如果您问一个关于您想做什么的问题,而不是关于您的关于如何做到这一点的想法。我了解课程,只是想知道这样的事情是否可能。是的@Hurkyl,我应该这样做,而不是邀请大量的反对票。哈哈……感谢你真正回答了这个问题。我只是想知道这是否可能,但在谷歌搜索中并没有出现。
void cleanup() {
// blah
}
int main() {
// many variable initializations
// call cleanup
cleanup(this); // <--- can i do this?
}