C++ 使用类的刽子手游戏,无法运行

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

所以我必须使用类和单独的函数来制作一个Hangman游戏,我认为我可以更容易地为每个live left制作函数,但是当我调用它时它不会打印出来。。。 也许有人能帮我。 多谢各位

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,但是您的
集合
函数都重复了前一个函数的工作

除此之外,以下是使代码正常工作(并稍微整理一下)所需的修复:

<