我收到以下代码的错误:
#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;
}
错误:child_proces.cpp:在函数中âintmain()â: child_proces.cpp:11:错误:期望
;' 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
;'在token令牌之前
答案 0 :(得分:4)
您无法在另一个函数(包括main
)中定义构造函数或析构函数或任何其他方法。
将定义移到main之外,最好移动到与"child_proces.h"
对应的实现文件中,如"child_proces.cpp"
。
要进行编译,您可以尝试:
childprocess::childprocess(){}
childprocess::~childprocess(){}
int main()
{
//...
}
答案 1 :(得分:0)
您需要在main
函数之外定义方法。
childprocess::childprocess(){}
childprocess::~childprocess(){}
int main() {}
另外,如果你不打算在其中做任何事情,为什么要首先声明构造函数和析构函数?
答案 2 :(得分:0)
#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;
}