다중 상속을 배우고 이해하려고합니다.'class'호출에 대한 일치 함수가 없습니다.
내가 '포기'클래스
의 자식 인 '스쿼트'클래스가 왜 오류 메시지가 버려진 :: 버려진()
불법 거주자에 대한 호출에 대한 일치하는 기능 얻고있다. cpp | 9 | 오류 : 'Abandoned :: Abandoned()'에 대한 호출과 일치하는 함수가 없습니다.
이 주제와 관련하여이 웹 사이트에서 비슷한 게시물을 많이 보았습니다. 그들은 포기한 객체를 올바른 주장으로 선언해야한다고 말합니다.하지만 포기한 함수를 사용하려고하지는 않습니다. 단지 링크 만하고 싶습니다.
나는 그것이 내 생성자와 관련이 있다고 생각하지만 문제가 무엇인지 해결할 수 없다.
코드의 큰 벽 죄송하지만 더 좋은 방법이 여기에
내 쪼그리고 통화 당/h의
#ifndef SQUAT_H
#define SQUAT_H
#include<abandoned.h>
#include<building.h>
class Squat:public Buildings, public Abandoned
{
private:
bool isempty;
public:
Squat(bool);
virtual void display();
virtual void isoccupied(bool);
};
#endif // SQUAT_H
및 .CPP
#include<iostream>
#include<squat.h>
#include<building.h>
#include<apartment.h>
#include<abandoned.h>
Squat::Squat(bool isitempty):isempty(isitempty){}
void Squat::isoccupied(bool isitempty)
{
if(isitempty=1)
{
isempty=1;
cout<<"The abandoned building is empty"<<endl;
}
else cout<<"The abandoned building is full of dirty squatters"<<endl;
}
생각하지 못했습니다 내가 이해할 때 내 이해가있다.
class Squat:public Buildings, public Abandoned
이 함께 클래스 아래
내 포기 통화 당/h의
#ifndef ABANDONED_H
#include<vector>
#include<building.h>
#define ABANDONED_H
class Abandoned:public Buildings
{
private:
int length;
std::vector<int> status;
int sum;
public:
Abandoned(int m_size, int asum);
Abandoned(bool);
virtual void getstatus(int);
virtual void display();
virtual void demolish(int);
virtual void rebuild(int);
//virtual void demolish(int);
};
#endif // ABANDONED_H
내 통화 당은
#include<iostream>
#include<string>
#include<vector>
#include<apartment.h>
#include<building.h>
#include<abandoned.h>
#include<algorithm>
#include<numeric>
using namespace std;
Abandoned::Abandoned(int m_size, int asum): length(m_size), status(m_size, 0), sum(asum)
{}
void Abandoned::getstatus(int m_size)
{
status.push_back(length);
};
void Abandoned::display()
{
Buildings::display();
cout << " length of status is: "<<status.size()<<endl;
}
void Abandoned::demolish(int asum)
{
if(asum<3)
{
cout<<"The building is below the safety standards and should be demolished"<<endl;
}else{
cout<<"The building meets the safety standards and can be rebuilt"<<endl;}
}
void Abandoned::rebuild(int asum)
{
if(asum>3)
{
cout<<"The building is above the safety standards and should be rebuilt"<<endl;
}else{
cout<<"The building should be demolished"<<endl;}
}
는이 코드의 대부분은 손 질문에 무관 확신합니다. MVCE로 축소 할 수 있습니까? TIA. – Borgleader
@Borgleader가 말한 것 외에 컴파일러가 표시 한 정확한 오류 메시지가 유용 할 것입니다. – Steve