Avatar billede tandpine Nybegynder
25. februar 2001 - 14:37 Der er 5 kommentarer og
1 løsning

strings

Hejsa
jeg er ved at lave et spil i vc++
til det har jeg en class:

// monsters.h
// grundtrækkene for et monster

#include <stdio.h>
#include <string.h>

class Monster {
   
    char *_ID; // id for monsteret
    char *_name; // Navnet
    int _xpos, _ypos;
    int _move;
    int _life;

   
    public:
        Monster() {
            _ID=\"\";
            _name=\"\";
            _xpos=0;
            _ypos=0;
            _life=0;
            _move=0;
        }

        Monster( char *ID, char *name, const int xpos, const int ypos, const int move, const int life) {
            _ID=ID;
            _name=name;
            _xpos=xpos;
            _ypos=ypos;
            _move=move;
            _life=life;
        }

        void setPos( const int xpos, const int ypos) {
            _xpos = xpos;
            _ypos = ypos;
        }
       
        char movePos( const int dx, const int dy) {

            if (_move*_move >= dx*dx+dy*dy){
                _xpos+= dx;
                _ypos+= dy;
                return 1;
            } else
            {
                return 0;
            }
        }

        int getXpos() { return _xpos; }
        int getYpos() { return _ypos; }


        char *getName() { return _name;}       
   
        ~Monster() {}

    };




problemet er at jeg åbenbart ikke ka finde ud af at arbejde med \"strenge\"

min cpp fil ser sådan her ud:
/* TEST2.cpp */
/* Creates some bad guys and show their params */


#include <stdio.h>
#include <iostream.h>
#include \"monsters.h\"

Monster amonster(\"ID002002\",\"ORGRE\",25,20,4,32);

void main() {

    cout << amonster.getName() << endl;
    cout << amonster.getXpos() << \"\\n\" << amonster.getYpos() << endl;
    amonster.setPos(10,30);
    cout << amonster.getXpos() << \"\\n\" << amonster.getYpos() << endl;
    if (amonster.movePos(-2,4))
        cout << amonster.getXpos() << \"\\n\" << amonster.getYpos() << endl;
    else
        cout << \"could not move\" << endl;
}

den udskriver ikke noget ved getName() :/
Avatar billede brain Nybegynder
25. februar 2001 - 14:47 #1
Det er fordi du ikke allokerer noget plads til name i constructoren....

du skal definere _name som et char [], og bruge strcpy i constructoren
Avatar billede brain Nybegynder
25. februar 2001 - 15:08 #2
det samme gælder for ID
Avatar billede tandpine Nybegynder
25. februar 2001 - 15:15 #3
skal jeg bare definere den som:
char name[]; ??? for det virker nemlig ikke
Avatar billede tandpine Nybegynder
25. februar 2001 - 15:26 #4
hmm skummelt
jeg har lige indsat en
cout << \"tester\" << endl;
i monsters.h i monster(bla bla bla) constructeren
og den udskriver ikke noget?? men den sætter variablerne derinde
Avatar billede tandpine Nybegynder
25. februar 2001 - 15:44 #5
heh jooo.. jeg kunne alligevel :)
det gælder bare om at køre den rigtige .exe fil LOOOOL

brain ka du ikke lige komme med et svar igen så får du dine points
Avatar billede brain Nybegynder
25. februar 2001 - 16:07 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB