Note that there are some explanatory texts on larger screens.

plurals
  1. POError evaluating inherited methods
    primarykey
    data
    text
    <p>I am having some troubles trying to implement some methods. That is what I do. </p> <p>1)1 object of class sistema is created with 1 Object of class Rotor and 1 object of class IModeloDinamico inside. This Rotor and IModeloDinamico have their own accesors for all of their variables.</p> <pre><code>sistema::sistema() { new Rotor(); new IModeloDinamico(); }; </code></pre> <p>2)Then I implement a method to solve a system of differential ecuations, that takes all values from Rotor and IModeloDinamico objects.</p> <p>Where GetFunctionParseri()is a method of IModeloDinamico that returns a value by reference:</p> <pre><code>const FunctionParser&amp; GetFunctionParser1(){return fp1;}; </code></pre> <p>This object fp1 is of FunctionParse class.</p> <p>The method to solve the ode system is:</p> <pre><code>int sistema::odesolver(){ cout &lt;&lt;"***********************************************************************"&lt;&lt; endl ; cout &lt;&lt;"************************START ODE SOLVER FUNCTION**********************"&lt;&lt; endl ; cout &lt;&lt;"***********************************************************************"&lt;&lt; endl ; const FunctionParser&amp; sfp1=IModeloDinamico::GetFunctionParser1(); const FunctionParser&amp; sfp2=IModeloDinamico::GetFunctionParser2(); const FunctionParser&amp; sfp3=IModeloDinamico::GetFunctionParser3(); const FunctionParser&amp; sfp4=IModeloDinamico::GetFunctionParser4(); const FunctionParser&amp; sfp5=IModeloDinamico::GetFunctionParser5(); const FunctionParser&amp; sfp6=IModeloDinamico::GetFunctionParser6(); const FunctionParser&amp; sfp7=IModeloDinamico::GetFunctionParser7(); const FunctionParser&amp; sfp8=IModeloDinamico::GetFunctionParser8(); const FunctionParser&amp; sfp9=IModeloDinamico::GetFunctionParser9(); const FunctionParser&amp; sfp10=IModeloDinamico::GetFunctionParser10(); const FunctionParser&amp; sfp11=IModeloDinamico::GetFunctionParser11(); const FunctionParser&amp; sfp12=IModeloDinamico::GetFunctionParser12(); const FunctionParser&amp; sfp13=IModeloDinamico::GetFunctionParser13(); const FunctionParser&amp; sfp14=IModeloDinamico::GetFunctionParser14(); const FunctionParser&amp; sfp15=IModeloDinamico::GetFunctionParser15(); const FunctionParser&amp; sfp16=IModeloDinamico::GetFunctionParser16(); //Some code </code></pre> <p>That is how I assign the values of fpi(that is a variable of IModeloDinamico) to sfpi which is the variable I use in:</p> <pre><code> double k1[] = {IModeloDinamico::Gettinitial() , IModeloDinamico::Getu1() , IModeloDinamico::Getu2(), IModeloDinamico::Getu3(), IModeloDinamico::Getu4(), IModeloDinamico::Getp(), IModeloDinamico::Getq(), IModeloDinamico::Getr(), IModeloDinamico::Getphi(), IModeloDinamico::Gettheta(), IModeloDinamico::Getpsi(), IModeloDinamico::Getvx(), IModeloDinamico::Getvy(), IModeloDinamico::Getvz(), IModeloDinamico::Getx(), IModeloDinamico::Gety(), IModeloDinamico::Getz() }; double k2[] = {IModeloDinamico::Gettinitial() + IModeloDinamico::GetH()/2 , IModeloDinamico::Getu1() + (IModeloDinamico::GetH()/2)*sfp1.Eval(k1) , IModeloDinamico::Getu2() + (IModeloDinamico::GetH()/2)*sfp2.Eval(k1) , IModeloDinamico::Getu3() + (IModeloDinamico::GetH()/2)*sfp3.Eval(k1) , IModeloDinamico::Getu4() + (IModeloDinamico::GetH()/2)*sfp4.Eval(k1) , IModeloDinamico::Getp() + (IModeloDinamico::GetH()/2)*sfp5.Eval(k1) , IModeloDinamico::Getq() + (IModeloDinamico::GetH()/2)*sfp6.Eval(k1) , IModeloDinamico::Getr() + (IModeloDinamico::GetH()/2)*sfp7.Eval(k1) , IModeloDinamico::Getphi() + (IModeloDinamico::GetH()/2)*sfp8.Eval(k1) , IModeloDinamico::Gettheta() + (IModeloDinamico::GetH()/2)*sfp9.Eval(k1) , IModeloDinamico::Getpsi() + (IModeloDinamico::GetH()/2)*sfp10.Eval(k1) , IModeloDinamico::Getvx() + (IModeloDinamico::GetH()/2)*sfp11.Eval(k1) , IModeloDinamico::Getvy() + (IModeloDinamico::GetH()/2)*sfp12.Eval(k1) , IModeloDinamico::Getvz() + (IModeloDinamico::GetH()/2)*sfp13.Eval(k1) , IModeloDinamico::Getx() + (IModeloDinamico::GetH()/2)*sfp14.Eval(k1) , IModeloDinamico::Gety() + (IModeloDinamico::GetH()/2)*sfp15.Eval(k1) , IModeloDinamico::Getz() + (IModeloDinamico::GetH()/2)*sfp16.Eval(k1)}; </code></pre> <p>Where method eval is a FunctionParser class public method.</p> <p>Class sistema is declared as:</p> <pre><code>class sistema: public Rotor, public IModeloDinamico, public FunctionParser { public: sistema(); virtual ~sistema(); int odesolver(); }; </code></pre> <p>The error messages are in sfp1.eval(k1)</p> <p><strong>Multiple markers at this line - Invalid arguments ' Candidates are: double Eval(const double <em>) ' - passing ‘const FunctionParser’ as ‘this’ argument of ‘double FunctionParser::Eval(const double</em>)’ discards qualifiers [-fpermissive]</strong></p> <p>And eval method is:</p> <pre><code>double Eval(const double* Vars); </code></pre> <p>This is my second message. In the first one I made some format mistakes I tryed to fix. But it is probably there are some other errors. My apologize if my message is difficult to read. Tell me what is wrong in format and I will fix it.</p> <p>Thanks a lot for the help!!!!!</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload