여기에 제가 가지고있는 문제가 있습니다. 여기 내 군인 클래스입니다 :상속 된 보호 된 멤버를 사용하여 문제가 발생했습니다. (C++)
Warrior.h: In constructor 'Warrior::Warrior()':
Warrior.h:9:9: error: class 'Warrior' does not have any field named 'm_damage'
m_damage(10)
: 나는이 프로그램을 실행할 때
이 문제가
#ifndef WARRIOR_H
#define WARRIOR_H
#include "Soldier.h"
class Warrior: public Soldier{
public:
Warrior():
m_damage(10)
{}
};
#endif // WARRIOR_H
, 나는이 오류가 : 여기
#ifndef SOLDIER_H
#define SOLDIER_H
#include <iostream>
class Soldier{
protected:
const int m_damage;
public:
Soldier():
m_damage(5)
{}
};
#endif // SOLDIER_H
그리고 것은 상속, 내 전사 클래스입니다
설정 한 것 같습니다.
const int m_damage;
Soldier 클래스에서 보호되고 Warrior 클래스에서 공개적으로 상속 된 것처럼 계속 액세스 할 수 없습니다. 어떤 도움이라도 대단히 감사 할 것입니다.
생성자는 기본 클래스의 멤버가 아닌 다른 클래스의 멤버를 초기화 할 수 없습니다. 이것이 기본 클래스의 생성자의 책임입니다. 이것은'm_damage'가 보호받는 것과 아무런 관련이 없습니다. –
'Warror' 클래스가 사용할 수있는'Soldier' 생성자를 제공하십시오. –
게시물에 서명하지 마십시오. 게시물에 이미 사용자 카드가 "서명"되어 있습니다. – meagar