我遇到多文件设置问题。我在视觉工作室工作,无论出于什么原因,我班上的朋友功能都没有在主要版本中定义。任何帮助将不胜感激,谢谢。
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)。我只是将所有内容都包括在内,以便更好地帮助弄清楚错误。
答案 0 :(得分:2)
getWins()
至少需要.h
文件中的声明。
由于它是朋友,getWins()
不是该类的成员,因此必须直接在BullCowMain.cpp
或某些文件BullCowMain.cpp
中声明。
在标题中的类之外的某处添加:
int getWins();
此外,在getwins
内,返回应为:
return BullCow::Wins;
感谢@ user4581301!