2013-05-02 40 views
0

我真的很新,在C++编程和它只有一个月,我开始学习面向对象编程,我正在学习这个继承程序,我没有得到我想要的输出。这个源代码下面有什么错误。如何获得这个程序的输出中的整数35和50?

#include<iostream> 
using namespace std; 
class enemy{ 
    private: 
     int attackpower; 
     public: 
      void enemys(int x) 
      { 
       attackpower=x; 
      } 

    }; 

      class monster : public enemy 
      { 
       public: 
       enemy::enemys; 

      }; 

      class ninja : public enemy 
      { 
       public: 
       enemy::enemys; 
      }; 


int main() 
{ 
    monster object1; 
cout<<"You get points : - "<<endl; object1.enemys(35); 

    ninja object2; 
cout<<"You get points : - "<<endl; object2.enemys(50); 

} 

很好的输出我得到的是这样的:

输出: 你拿点: - 你拿点: -

我想,让你得到后”我所提到的整数点: - 35“和”你得分 - 50“

按照程序我没有得到输出整数。什么可能是错的?

我是编程新手,所以请帮助我。

非常感谢。

+1

有无处在你的代码,你输出的整数。我不确定为什么你认为应该输出任何整数。 – john 2013-05-02 13:59:11

+0

将某个对象的'object.enemys()'调用到同一行,因为某些输出不会输出它(更不用说它将返回void)。要解决这个问题,你首先需要一种方法来将'attackpower'从对象中取出(现在你只能设置它)。然后,您可以通过链接插入运算符来输出它:'cout <<“您可以得到分数: - ”<< object1.functionThatReturnsAttackPower(); << endl;'。顺便说一句,重新考虑有一个类继承并包含另一个类。这肯定只会让你后来感到困惑。 – jerry 2013-05-02 14:02:07

+0

我认为你的代码的问题是,虽然它有一些继承类,它没有任何**使用继承。没有什么是你没有继承就无法做到的。也许这就是为什么你正在为这个概念而努力。 – john 2013-05-02 14:03:41

回答

1

下面是一些代码(非常轻微)使用继承。也许你会发现它很有用

#include<iostream> 
using namespace std; 
class enemy{ 
    private: 
     int attackpower; 
     public: 
      enemy(int ap) 
      { 
       attackpower = ap; 
      } 
      int get_attackpower() 
      { 
       return attackpower; 
      } 

    }; 

     class monster : public enemy 
     { 
     public: 
      monster() : enemy(35) 
      { 
      } 
     }; 

     class ninja : public enemy 
     { 
     public: 
      ninja() : enemy(50) 
      { 
      } 
     }; 


int main() 
{ 
    monster object1; 
    cout<<"You get points : - " << object1.get_attackpower() << endl; 

    ninja object2; 
    cout<<"You get points : - "<< object2.get_attackpower() << endl; 

} 

输出

You get points : - 35 
You get points : - 50 
+0

http://stackoverflow.com/users/1534269/john 非常感谢您的回答。我想出你做了什么..我想你使用返回方法并访问变量,然后使用该函数get_attackpower()与对象吗?如果我错了,请纠正我。 非常感谢BTW u能请告诉我“的怪物的详细信息():敌(35) { } 和 忍者():敌(50) { } 请告诉我什么ü实际上做 – yeahhhhRIGHT 2013-05-02 14:55:08

+0

这是正确的,这个代码'怪物():敌人(35){}'是怪物构造者,它首先用攻击力35创造一个敌人物体来构造怪物。因为每次你创造一个怪物时怪物都从敌人身上继承对象你也创造了一个敌人对象,忍者是一样的,都是从敌人身上继承而来,所以敌人只是为了忍者和怪物共享的东西,就像拥有攻击力(即使它不是同一个攻击力)一样。 – john 2013-05-02 14:58:10

+0

哇太棒了,我认为它是我的时间再次了解构造函数,并在其上进行一些程序,直到我学到它为止。 再次感谢。 – yeahhhhRIGHT 2013-05-02 15:00:48

相关问题