C++ 헤더파일 질문이요!

조회수 4205회

Player.h

#ifndef _PLAYER_H_
#define _PLAYER_H_

class Player {
private:
    char * id;
    char * job;
    int level;
    int hp;

public:
    void setId(char * id);
    void setJob(char * job);
    void setLevel(int level);
    void setHp(int hp);
};

#endif

Player.cpp

#include <iostream>
#include "Player.h"

using namespace std;
//default 생성자
void Player() {
    cout << "객체를 생성합니다.";
}

//초기 값 생성자(매개변수)
void Player(char * id, char * job, int level, int hp) {
    setHp(10); // 여기서 오류 출력! (식별자 "setHp" 이(가) 정의되어 있지 않습니다.)
}


//Setter
void Player::setId(char * id) {
    this->id = new char[strlen(id) + 1];
    strcpy_s(this->id, strlen(id) + 1, id);
}

void Player::setJob(char * job) {
    this->job = new char[strlen(job) + 1];
    strcpy_s(this->job, strlen(job) + 1, job);
}

void Player::setLevel(int level) {
    this->level = level;
}

void Player::setHp(int hp) {
    this->hp = hp;
}

생성자에서 밑에 정의한 함수를 호출하려고 하는데 찾지를 못하네요ㅠㅠ 자바를 하다와서 그런지 햇갈린게 이만저만이 아닙니다! 도와주세요!

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 멤버 함수를 클래스의 바깥에서 정의하면

    클래스명::메소드명(...)
    {
    }
    

    과 같이 써야합니다.

    생성자의 경우에는

    Player::Player(){
        // 머라머라
    

    이렇게 써주세요~

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)