首页 > 解决方案 > C++ - 无法在 main 中调用 Friend 函数?

问题描述

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

牛牛.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)还没有使用。我只是将所有内容都包括在内,以更好地帮助找出问题所在。

标签: c++visual-c++

解决方案


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

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

在标题中的类之外的某个地方添加它:

int getWins();

此外,在里面getwins,回报应该是:

return BullCow::Wins;

谢谢@user4581301!


推荐阅读