@NONAME8

Почему возникает ошибка при наследование классов С++?

#include <iostream>
#include "file.hpp"
#include "file2.hpp"
using namespace std;

int main() {
    Klass3 kl3;
    Klass4 kl4;
    
    kl3.funk3();
    kl4.funk4();
}


#include <iostream>
using namespace std;

class Klass3{
public:
    int m=50;
    Klass3();
    void funk3(void);
};


#include "file.hpp"
Klass3::Klass3(){
    
}
void Klass3::funk3(void){
    cout<<"вывожу переменную с класса предка "<<m<<endl;
}


#include "file.hpp"
class Klass4:public Klass3{
public:
    
    Klass4();
    void funk4(void);
};


#include "file2.hpp"
Klass4::Klass4(){
    
}
void Klass4::funk4(void){
    m+=350;
    cout<<"вывожу переменную с класса потомка "<<m<<endl;
}


Выдает ошибку :
59fc777573842108206672.png
  • Вопрос задан
  • 200 просмотров
Решения вопроса 1
tsarevfs
@tsarevfs Куратор тега C++
C++ developer
Добавьте #pragma once в начале каждого .hpp файла. Препроцессор копипастит текст файла вместо соответствующей #include директивы. У вас получится, что файл содержащий Klass3 подставляется 2 раза. #pragma once выкидывает повторы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы