C ++ - 无法在main中调用Friend函数?

时间:2018-05-25 22:42:43

标签: c++ visual-c++

我遇到多文件设置问题。我在视觉工作室工作,无论出于什么原因,我班上的朋友功能都没有在主要版本中定义。任何帮助将不胜感激,谢谢。

BullCow.h:

#pragma once

#include <iostream>
#include <cstdlib>
#include <stdlib.h>
#include <time.h>

class BullCow {

    public:

        BullCow();

        friend int getWins();

        static int Wins;

    private:

        int Attempts;

};

BullCow.cpp:

#include "stdafx.h"
#include "BullCow.h"



int BullCow::Wins = 0;

int getWins() {

    return Wins;

}

BullCowMain.cpp:

#include "stdafx.h"
#include "BullCow.h"

int main()
{

    srand(time(NULL));

    std::cout << getWins();


    return 0;
}

注意:它是一个不完整的程序,因此尚未使用某些代码(srand)。我只是将所有内容都包括在内,以便更好地帮助弄清楚错误。

1 个答案:

答案 0 :(得分:2)

getWins()至少需要.h文件中的声明。

由于它是朋友,getWins()不是该类的成员,因此必须直接在BullCowMain.cpp或某些文件BullCowMain.cpp中声明。

在标题中的类之外的某处添加:

int getWins();

此外,在getwins内,返回应为:

return BullCow::Wins;

感谢@ user4581301!