什么是错的,我得到错误的下面的代码的程序
问题描述:
#include "parent_child.h"
#include "child_proces.h"
int main() {
childprocess::childprocess(){}
childprocess::~childprocess(){}
/* parentchild *cp = NULL;
act.sa_sigaction = cp->SignalHandlerCallback;
act.sa_flags = SA_SIGINFO;
sigaction(SIGKILL, &act, NULL);
}*/
printf("Child process\n");
return 0;
}
ERROR: child_proces.cpp: In function âint main()â: child_proces.cpp:11: error: expected
;' before â{â token child_proces.cpp:12: error: no matching function for call to âchildprocess::~childprocess()â child_proces.h:9: note: candidates are: childprocess::~childprocess() child_proces.cpp:12: error: expected
;' before â{â token
答
不能定义构造函数和析构函数或任何其他方法的另一个函数内此事(包括main
)。
将定义移到main之外,最好在对应于"child_proces.h"
的实现文件中 - 如"child_proces.cpp"
。
为了得到它来编译,你可以尝试:
childprocess::childprocess(){}
childprocess::~childprocess(){}
int main()
{
//...
}
答
您需要定义main
功能之外的方法。
childprocess::childprocess(){}
childprocess::~childprocess(){}
int main() {}
而且,你为什么声明在首位的构造函数和析构函数,如果你不打算在他们做什么?
答
#include "parent_child.h"
#include "child_proces.h"
childprocess::childprocess(){}
childprocess::~childprocess(){}
int main() {
/* parentchild *cp = NULL;
act.sa_sigaction = cp->SignalHandlerCallback;
act.sa_flags = SA_SIGINFO;
sigaction(SIGKILL, &act, NULL);
}*/
printf("Child process\n");
return 0;
}