전장의 시작 부분에 다형성을 구현하려고합니다.하지만 기본 클래스 생성자를 호출하려고 할 때 내 식별자 중 하나가 정의되지 않은 인텔리 센스 오류가 계속 발생합니다. 여기 C++ 다형성 생성자 오류입니다. 식별자가 정의되지 않았습니다
는 Ship.h 기본 클래스에 대한 코드입니다 :#ifndef SHIP_H
#define SHIP_H
#include <iostream>
class Ship
{
public:
Ship(int, int);
void setX(int);
int getX() const;
void setY(int);
int getY() const;
private:
int x;
int y;
};
#endif
을하고 여기의 생성자
#include "Ship.h"
using namespace std;
Ship::Ship(int userX, int userY)
{
setX(userX);
setY(userY);
}
파생 클래스 헤더입니다 :
#ifndef FRIGATE_H
#define FRIGATE_H
#include "Ship.h"
class Frigate : public Ship {
public:
Frigate(int);
void placeShip();
void setLength(int);
int getLength() const;
private:
int length;
};
#endif
과의 생성자
#include <iostream>
#include "Frigate.h"
using namespace std;
Frigate::Frigate(int specLength) : Ship(userX, userY)
{
setLength(specLength);
}
식별자가 userX
및 userY
인 선박 제작자를 호출하려고하면 오류가 발생하지만 기본 클래스의 생성자에서 정의했습니다. 나는 무엇을 잘못 했는가?
'Frigate' 이니셜 라이저에서 기본 클래스 생성자에 정의되지 않은 변수'userX'와'userY'를 전달하면 컴파일러는 그 변수를 알지 못한다고 올바르게 알립니다. –