我在使用多文件设置时遇到了麻烦。我在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.cpp
或BullCowMain.cpp
include的某些文件中声明它。
将此添加到您的 header 中类之外的某个位置:
int getWins();
另外,在
getwins
内部,返回应为:return BullCow::Wins;
感谢@ user4581301!