我在使用多文件设置时遇到了麻烦。我在Visual Studio中工作,由于某种原因,我的类(class)中的 friend 功能未在main中定义。任何帮助,将不胜感激,谢谢。

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;
}

注意:这是一个不完整的程序,因此尚未使用某些代码(商标)。我只是将所有内容都包括在内,以更好地帮助您找出问题所在。

最佳答案

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

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

将此添加到您的 header 中类之外的某个位置:

int getWins();

另外,在getwins内部,返回应为:
return BullCow::Wins;

感谢@ user4581301!

07-24 21:36