C ++ - Функция друга не может быть вызвана в main? - PullRequest
0 голосов
/ 26 мая 2018

У меня проблемы с настройкой нескольких файлов.Я работаю в визуальной студии, и, по какой-то причине, функция моего друга в моем классе не определяется в основном.Спасибо за любую помощь, спасибо.

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 голосов
/ 26 мая 2018

getWins() требуется как минимум объявление в файле .h.

Поскольку это друг, getWins() не является членом класса, поэтому он должен быть объявлен либо непосредственно в * 1006.* или в каком-то файле BullCowMain.cpp включает.

Добавьте это где-нибудь вне класса в своем заголовке:

int getWins();

Кроме того, внутри getwins возвращаемое значение должно быть:

return BullCow::Wins;

Спасибо @ user4581301!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...