#include <iostream>

struct Monsters
{
    int Damage;
    int PowerUp;
    int Monster_Strength;

    // remaining members elided for brevity

    Monsters( int d, int p, int ms ) : Damage(d), PowerUp(p), Monster_Strength(ms)    {}
};

bool operator== ( const Monsters& a, const Monsters& b ) // C++11
{
    return a.Damage == b.Damage && a.PowerUp == b.PowerUp &&
           a.Monster_Strength == b.Monster_Strength ;
}

bool operator!= ( const Monsters& a, const Monsters& b ) { return !(a==b) ; }

int main()
{
    Monsters m11( 23, 2, 5 ) ; // *** note this - () instead of {}
    if( m11 == Monsters( 23, 2, 5 ) ) std::cout << "ok\n" ;
    if( m11 != Monsters( 23, -6, 5 ) ) std::cout << "ok\n" ;
}
