C++ 使用类的刽子手游戏,无法运行
所以我必须使用类和单独的函数来制作一个Hangman游戏,我认为我可以更容易地为每个live left制作函数,但是当我调用它时它不会打印出来。。。 也许有人能帮我。 多谢各位C++ 使用类的刽子手游戏,无法运行,c++,function,class,callback,subclass,C++,Function,Class,Callback,Subclass,所以我必须使用类和单独的函数来制作一个Hangman游戏,我认为我可以更容易地为每个live left制作函数,但是当我调用它时它不会打印出来。。。 也许有人能帮我。 多谢各位 This is the main // TheHangmanGame.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "DrawHangman.h" #include <iost
This is the main
// TheHangmanGame.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "DrawHangman.h"
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
int main()
{
cout << "WHY wont u WORK!!!! \n" ;
cout << "asdf" << &DrawHangman::setDrawMan0 << "\n" ;
cout << "work \n";
system("PAUSE");
return 0;
}
这是主要问题
//hangmangame.cpp:定义控制台应用程序的入口点。
//
#包括“stdafx.h”
#包括“DrawHangman.h”
#包括
#包括
#包括
使用名称空间std;
int main()
{
cout调用“setDrawMan”作为标准c函数,而不是试图重载cout,难道不是更好吗
而不是
.h
void setDrawMan0(char);
main
cout << "asdf" << &DrawHangman::setDrawMan0 << "\n" ;
.h
void setDrawMan0(char);
主要的
cout调用“setDrawMan”作为标准c函数,而不是试图重载cout,难道不是更好吗
而不是
.h
void setDrawMan0(char);
main
cout << "asdf" << &DrawHangman::setDrawMan0 << "\n" ;
.h
void setDrawMan0(char);
主要的
cout调用“setDrawMan”作为标准c函数,而不是试图重载cout,难道不是更好吗
而不是
.h
void setDrawMan0(char);
main
cout << "asdf" << &DrawHangman::setDrawMan0 << "\n" ;
.h
void setDrawMan0(char);
主要的
cout调用“setDrawMan”作为标准c函数,而不是试图重载cout,难道不是更好吗
而不是
.h
void setDrawMan0(char);
main
cout << "asdf" << &DrawHangman::setDrawMan0 << "\n" ;
.h
void setDrawMan0(char);
主要的
cout&DrawHangman::setDrawMan0不调用该函数,它返回指向成员的指针。问题是setDrawManX()函数不是静态的
您可以将它们设置为静态,也可以创建DrawHangman的实例,在该实例上调用实例方法
另外,为什么每个函数都有两个重载?我看不出使用未命名char参数的任何原因。&DrawHangman::setDrawMan0不调用该函数,它返回一个指向成员的指针。问题是setDrawManX()函数不是静态的
您可以将它们设置为静态,也可以创建DrawHangman的实例,在该实例上调用实例方法
另外,为什么每个函数都有两个重载?我看不出使用未命名char参数的任何原因。&DrawHangman::setDrawMan0不调用该函数,它返回一个指向成员的指针。问题是setDrawManX()函数不是静态的
您可以将它们设置为静态,也可以创建DrawHangman的实例,在该实例上调用实例方法
另外,为什么每个函数都有两个重载?我看不出使用未命名char参数的任何原因。&DrawHangman::setDrawMan0不调用该函数,它返回一个指向成员的指针。问题是setDrawManX()函数不是静态的
您可以将它们设置为静态,也可以创建DrawHangman的实例,在该实例上调用实例方法
另外,为什么每个函数都有两个重载?我看不出使用未命名char参数的任何原因。您的代码有很多错误。首先,它的设计很糟糕-函数的主要用途之一是代码重用和to,但是您的set
函数都重复了前一个函数的工作
除此之外,以下是使代码正常工作(并稍微整理一下)所需的修复:
- 摆脱
#包括-您没有使用此标题
- 摆脱
#包括-您没有使用此标题
- 在顶部有
使用名称空间std
的.cpp
文件中,不要在函数中重复它
- 在头文件中使用
名称空间std
是一种不好的做法,因为这会污染包括头文件在内的所有文件的封闭名称空间。在任何情况下,头文件中都没有使用std
名称空间的任何成员,因此毫无意义
- 在调用函数之前去掉
&
——该操作符返回函数的地址,而不是您想要的地址
- 正确调用您的函数。对于没有参数的函数,这意味着在函数名后加上空括号,例如
setDrawMan0()
,对于有参数但没有默认值的函数,请提供参数,例如setDrawMan0(1)
- 不要向未使用的函数提供参数。在
setDrawMan
函数中没有使用char
参数。相反,请将函数定义为setDrawMan()
(即没有参数)
- 您的
getDrawMan
函数似乎没有任何用处,您甚至还没有定义它们中的大多数。请删除它们或为它们指定用途
- 如果您有一个返回
void
的函数,那么将其流式传输到cout
是没有意义的。您的setDrawMan
函数本身流式传输到cout
,因此只需调用函数本身,例如setDrawMan0()
(但请参见下一点)
- 您的
setDrawMan
函数不访问任何成员变量,因此将它们声明为static
。事实上,您并没有以任何有意义的方式真正使用类-您所做的只是将一组相关函数收集在一起。这也可以通过将它们作为命名空间中声明的自由函数来实现e
- 如果您真的想使用类(而且您的作业似乎需要这样做),那么你就错了。与其使用一堆不同的硬编码绘图函数,不如使用一个类来跟踪一个成员变量中剩余的生命数。然后使用一个绘图函数来检查生命数并相应地绘图
您的代码有很多错误。首先,它的设计很糟糕-函数的主要用途之一是代码重用和to,但是您的集合
函数都重复了前一个函数的工作
除此之外,以下是使代码正常工作(并稍微整理一下)所需的修复:
<