inheritance - What is a correct way of using an implementation with an interface class in C++? -


i have class child , class human human has functions declared in child virtual functions. , class child inherits human class.

i want use human interface file hide implementation in child.

i didn't set constructor, set init() function initializes basic settings.

now, way can use child functions using human interface file?

i tried

human *john = new child(); 

but got following errors.

main.cpp:7: error: expected type-specifier before ‘child’ main.cpp:7: error: cannot convert ‘int*’ ‘human*’ in initialization main.cpp:7: error: expected ‘,’ or ‘;’ before ‘child 

i don't understand int* came either. none of functions declared returns int*.

edit

main.cpp

#include <stdlib.h> #include <stdio.h> #include "human.h" using namespace std; int main(){      human *john = new child();      return 0; } 

human.h

#ifndef __human_h__ #define __human_h__   class human { public:     virtual void init() = 0;     virtual void cleanup() = 0; };   #endif 

child.h

#ifndef __child_h__ #define __child_h__  #include "human.h"   class child : public human { public:     void init();     void cleanup();  };  #endif 

child.cpp

#include "child.h" void child::init() { }  void child::cleanup() { } 

makefile

cc = g++ inc = -i. flags = -w -wall linkopts = -g  all: program  program: main.o child.o     $(cc) -wall -o program main.o child.o  main.o: main.cpp human.h     $(cc) -wall -c main.cpp human.h  child.o: child.cpp child.h     $(cc) -wall -c child.cpp child.h  child.h: human.h  clean:     rm -rf program 

you need #include "child.h" in cpp file. can along including human.h or can not include human.h brought in automatically include within child.h

#include <stdlib.h> #include <stdio.h> #include "child.h" #include "human.h"    // no longer necessary, child.h includes   using namespace std; int main(){     human *john = new child();     return 0; } 

Comments

Popular posts from this blog

linux - Using a Cron Job to check if my mod_wsgi / apache server is running and restart -

actionscript 3 - TweenLite does not work with object -

jQuery Ajax Render Fragments OR Whole Page -