469,326 Members | 1,463 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,326 developers. It's quick & easy.

Derived class fail to be called first from the base one

4 Nibble
I use Ipopt C++ project and I want to use it to solve my problem. I created a derived class from the base one and and I created a virtual function in the base class to modify it in the derived one by doing the following:
Expand|Select|Wrap|Line Numbers
  1. using namespace Ipopt;
  2. class base : public TNLP
  3. {
  4.   base();
  6.   virtual ~base();
  8. public:
  9. //I want fisrt to apply the routine to my problem, and I have to creat many member functions in the derived class. for this I creat 
  10. //a simple virtual function 
  11. //all methods that are implement by Ipopt  team are unchanged, and I modify the end of the code by making:
  12. Protected:
  13.   virtual void sae(double aa_01, double ab_01, double ac_02, double ad_02);
  14. };
  15. class derived_class: public base
  16. public:
  17.   derived_class()
  18.   {}
  19.   virtual ~derived_class()
  20.   {}
  21.   virtual void sae(double aa_01, double ab_01, double ac_02, double ad_02)
  22.   // then I define aa_01,  ab_01, ac_02,  ad_02
  23.   {
  24.     aa_01=22;
  25.     ab_01=222;
  26.     ac_02=0;
  27.     ad_02=10;
  28.   }
In Cpp file I make the following to call sae from derived class :
Expand|Select|Wrap|Line Numbers
  1. base ::base ()
  2. {}
  3. base :~base()
  4. {}
  6. void base::sae(double aa_01, double ab_01, double ac_02, double ad_02)
  7. {
  8.   base *ptr = new derived_class();
  9.   ptr->sae(aa_01, ab_01, ac_02, ad_02);
  10.   // and when attribute ptr to aa_01    
  11.   aa_01_ = ptr->aa_01;
  12.   ab_01_ =  ab_01;
  13.   ac_02_ =  ac_02;
  14.   ad_02_ = ad_02;
  15. }
//when I print the value of aa_01_ which is defined as private member in base class
the compiler shows derived class has no member named aa_01; did you mean aa_01_?
please help how can I resolve this? and how can I call, in cpp file, the derived class first and specified member in that class which contains the core of my problem
Thank you,
Sep 14 '21 #1
2 5869
9,064 Expert Mod 8TB
None of your classes, base or derived, have any data members in the code you have posted. Additionally you are using a base class pointer so even if you had defined data members in derived you would not be able to access them through that pointer.
4 Weeks Ago #2
1 Bit
Hi to all!
4 Weeks Ago #3

Post your reply

Sign in to post your reply or Sign up for a free account.

By using this site, you agree to our Privacy Policy and Terms of Use.