Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Need help in instantiating abstract class

Need help in instantiating abstract class

Scheduled Pinned Locked Moved C / C++ / MFC
helplinuxquestion
5 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    an89
    wrote on last edited by
    #1

    I have an abstract class A which contains pure virtual functions.class B derives from it publicly and B has its own functions which are not virtual.Class C derives from B and calls functions of B .C also implements functions of A.now when I am trying to instantiate C i.e creating object of C its giving error that "cannot declare variable cobj of abstract type A due to pure virtual functions".It is happening only for Linux,in Windows its working fine.Can anybody help pls?

    C 1 Reply Last reply
    0
    • A an89

      I have an abstract class A which contains pure virtual functions.class B derives from it publicly and B has its own functions which are not virtual.Class C derives from B and calls functions of B .C also implements functions of A.now when I am trying to instantiate C i.e creating object of C its giving error that "cannot declare variable cobj of abstract type A due to pure virtual functions".It is happening only for Linux,in Windows its working fine.Can anybody help pls?

      C Offline
      C Offline
      CPallini
      wrote on last edited by
      #2

      Did you implemented all of the virtual methods? Could you post the code? :)

      If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
      This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
      [My articles]

      A 1 Reply Last reply
      0
      • C CPallini

        Did you implemented all of the virtual methods? Could you post the code? :)

        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
        This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
        [My articles]

        A Offline
        A Offline
        an89
        wrote on last edited by
        #3

        Its like Ibase.hpp ---------- class Ibase { public: virtual bool get() = 0; }; Abase.hpp --------- class Abase :public Ibase { public: bool getnumber(); } baselinux.hpp ------------- class baseLinux : public Abase { public: virtual bool get(); } driver.cpp ----------- baseLinux bL; //here showing error that i have mentioned error is coming only for linux.

        A L 2 Replies Last reply
        0
        • A an89

          Its like Ibase.hpp ---------- class Ibase { public: virtual bool get() = 0; }; Abase.hpp --------- class Abase :public Ibase { public: bool getnumber(); } baselinux.hpp ------------- class baseLinux : public Abase { public: virtual bool get(); } driver.cpp ----------- baseLinux bL; //here showing error that i have mentioned error is coming only for linux.

          A Offline
          A Offline
          an89
          wrote on last edited by
          #4

          I got the solution.I had given parameters in get() of baseLinux whereas it doesn't take any parameter in Ibase.

          1 Reply Last reply
          0
          • A an89

            Its like Ibase.hpp ---------- class Ibase { public: virtual bool get() = 0; }; Abase.hpp --------- class Abase :public Ibase { public: bool getnumber(); } baselinux.hpp ------------- class baseLinux : public Abase { public: virtual bool get(); } driver.cpp ----------- baseLinux bL; //here showing error that i have mentioned error is coming only for linux.

            L Offline
            L Offline
            laksh2204
            wrote on last edited by
            #5

            This is working fine in linux as well But, Did you define the function "baseLinux::bool get()" anywhere? as below: class baseLinux : public Abase { public: virtual bool get(){} } ----- laksh

            1 Reply Last reply
            0
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • World
            • Users
            • Groups