AshishKumar1109 Ответов: 1

Я хотел создать заголовочный файл со следующим результатом.


Заголовочный файл передается по наследству с других заголовочных файлов.
--------------Сначала заголовочный файл---------
#ifndef doing_h
#define doing_h
class doing{
  public:
    doing(int a){......}
    fn_doing1(){.........}
}
#endif


--------------Второй заголовочный файл---------
#ifndef something_h
#define something_h
class something{
  public:
    something(int a,int b){......}
    fn_something1(){.........}
}
#endif


--------------Основной заголовочный файл---------
ifndef main_header_h
#define main_header_h
#include "doing.h"
#include "something.h"
class main_header : public doing, public something{
  public:
    main_header(){......}
    fn_main_header1(){.........}
}
#endif

Теперь в коде я хочу получить доступ к конкретной функции заголовочных файлов как

#include "main_header.h"

main_header DOING(2) //I want the DOING to call the first header constructor and should represent the first header file only

main_header SOMETHING(2,8) //I want the DOING to call the Second header constructor and should represent the first header file only

void main(){
   DOING.fn_doing1(); //can be called
   DOING.fn_something1() //cannot be called
}

Как я могу сделать так, чтобы DOING и SOMETHING вызывали первую и вторую функции заголовочного файла соответственно.
Пожалуйста, предложите все необходимые изменения и необходимые правки.
Пожалуйста, помогите мне.

Что я уже пробовал:

Я пытался, но не смог этого сделать.

1 Ответов

Рейтинг:
2

KarstenK

У вас есть некоторое недопонимание заголовочных файлов. Они не "вызываются", а обрабатываются препроцессором.

Читайте википедию для сведения о препроцессоре.

То, что вы хотите, - это больше сделать с классами и наследованием. Учебник по классам.

Совет: избегайте множественного наследования, потому что это делает все немного грязным. Лучше будет

class doing : public something{
//...
};// end doing
class main_header : public doing


AshishKumar1109

Я знаю, что.
Я просто хочу сделать объект другого класса, используя имя основного класса, как я могу это сделать.