후 발표하는 동안 나는 명령 std::vector<Rule> setOfRules;
이 Rule
아직 선언되지 않았 음 오류를 제공하는 헤더 파일사용 파생 클래스 파생 클래스는 기본 클래스
#ifndef CATEGORY_H
#define CATEGORY_H
#include <functional>
#include <string>
#include <vector>
class Category
{
private:
std::string nameCategory;
std::vector<Rule> setOfRules;
protected:
public:
Category();
Category(std::string nameCategory);
void setIndexBankAccountEntry(unsigned int iBankAccountEntry);
};
class Rule : public Category
{
private:
std::function<void(int)> rule;
protected:
public:
Rule();
Rule(std::function<void(int)> rule);
};
#endif
있습니다. 두 클래스의 선언의 순서를 전환
는#ifndef CATEGORY_H
#define CATEGORY_H
#include <functional>
#include <string>
#include <vector>
class Rule : public Category
{
private:
std::function<void(int)> rule;
protected:
public:
Rule();
Rule(std::function<void(int)> rule);
};
class Category
{
private:
std::string nameCategory;
std::vector<Rule> setOfRules;
protected:
public:
Category();
Category(std::string nameCategory);
void setIndexBankAccountEntry(unsigned int iBankAccountEntry);
};
#endif
을 제공하지만 나는 줄 class Rule : public Category
에 대한 expected class-name before ‘{’ token
하는 오류가 발생합니다.
어떻게 해결할 수 있습니까?
왜'Rule'는'Category'에서 상속이 있지 확인? 'Category'에는'Rule'을 포함하지 않는'Rule'이 들어있는 이음새는'Rule'이 파생 클래스 여야합니다. – NathanOliver
아래 답변을 참조하십시오. 앞으로 선언문이 말하는 것은 "이 클래스라는 것이 있지만, 지금은 그것이 무엇인지 걱정하지 말라." 이를 통해 포인터를 선언 할 수는 있지만 그게 전부입니다. 올바르게 선언 될 때까지 클래스 내에서 아무 것도 참조 할 수 없습니다. – Mike