我是初学者在此链接中尝试最后一个c ++练习题:http://www.cplusplus.com/forum/articles/12974/ 它被称为毕业。 在开始编码之后,我决定将类定义分离为头文件。 (如果我第一次定义自己的头文件,请记住这一点。曾经)我试图在main.cpp中定义头文件类的成员函数,但是返回错误。
以下是给出错误的运算符函数定义:
//in main.cpp
Bunny::bool operator>(const Bunny &comparison) //ERROR!!! expected unqualified-id before 'bool'
{
if (badbunny == false && comparison->badbunny == true)
return true;
if (badbunny == true && comparison->badbunny == false)
return false;
else if (badbunny == comparison->badbunny) {
//......blah..blah..blah....nothing special here
}
这是标题类定义:
//in Bunny class.h
class Bunny
{
public:
const char * name;
const char * color;
int age;
char sex;
bool badbunny;
Bunny *next;
//default constructor
Bunny();
Bunny(char * M_color);
//operators
bool operator<(const Bunny &comparison);
bool operator>(const Bunny &comparison);
};
但是,当我输入类定义(以及我在这里没有输入的头文件中的其他一些声明)直接进入main.cpp并且不用任何头文件时,我的编译器没有& #39;给我任何错误。 如你所见,&#34; bool operator&gt;(const Bunny&amp; comparison);&#34;在头文件中明确声明。为什么我不能从main.cpp访问它? 我清楚#include&#39; d&#34; Bunny class.h&#34;在main.cpp中,头文件有一个后卫和一切。
答案 0 :(得分:2)
问题确实存在于你的功能声明中:
#include<stdio.h>
#include<sys/stat.h>
#include<ctype.h>
void childProcess(){
printf("From child process with process id %d\n", getpid());
}
void parentProcess(){
printf("Parent Process with id %d\n", getpid());
pid_t pid = fork();
if (pid == 0){
childProcess();
} else if (pid > 0){
printf("Parent spawned process %d\n", pid);
} else{
printf("Forking isn't supported!\n");
}
}
int main(){
parentProcess();
}
正确的做法是:
C:\Users\ADMINI~1\AppData\Local\Temp\ccORJc6N.o forking.c:(.text+0x3e): undefined reference to `fork'
属于函数名称的<{1}} 而不是返回类型。