错误:在' bool'之前预期的不合格ID

时间:2015-08-20 02:57:35

标签: c++ class header-files

我是初学者在此链接中尝试最后一个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中,头文件有一个后卫和一切。

1 个答案:

答案 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}} 而不是返回类型。