c++ - 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)还没有使用。我只是将所有内容都包括在内,以更好地帮助找出问题所在。
解决方案
getWins()
至少需要在.h
文件中声明。
由于它是朋友,getWins()
不是类的成员,因此必须直接在BullCowMain.cpp
或某些文件BullCowMain.cpp
包含中声明它。
在标题中的类之外的某个地方添加它:
int getWins();
此外,在里面getwins
,回报应该是:
return BullCow::Wins;
谢谢@user4581301!
推荐阅读
- reactjs - 将三元运算符与 React 和 Typescript 一起使用的正确方法是什么
- kubernetes - Google Cloud Endpoints 不限制对我的 API 的访问
- java - Spring Kafka生产者不能异步工作
- python - 更改 Flask 和自定义装饰器的顺序会破坏自定义装饰器
- postgresql - 何时对 Ecto 的“on_delete”使用“nothing”或“restrict”?
- python - 我可以使用 DRF 覆盖 ApiView 中单个请求类型的全局身份验证吗?
- java - 如何在 VS Code 中为 Spring Boot 项目添加 JVM 参数?
- reactjs - 反应:更改父状态不呈现子状态
- html - 找不到复制此边界的方法
- python - Python:整数前的点是什么意思?