Pereiti prie turinio

Reikia pagalbos, C++ pointers


Rekomenduojami pranešimai

Sveiki,

Gal žinote kaip išspręsti šį errora(screenshote)? Esmė tame kad man reikia Vm klasėje susikurti rodyklę į Kernel klase.

 

#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;

class Vm
{
 class Kernel *kernel;
public:
   Vm(Kernel *p_kernel)
   {
           kernel=p_kernel;
       }
};

class Kernel
{
   int a;
public:
   Vm vm(this);
};
int main()
{
int xy; cin >>  xy;
}

 

post-35192-017623800 1299787680_thumb.jpg

Nuoroda į pranešimą
Dalintis kituose puslapiuose

A vat kaip ten reikėjo, o dabar tarkim as sukuriu dvi funkcijas ir noriu su vmFunction() pakeisti kintamąjį a easantį Kernel klasėje. Bet kodėl man neleidžia to padaryti?

 

#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;

class Vm
{

 class Kernel *kernel;
public:
   Vm(Kernel *p_kernel)
   {
      kernel=p_kernel;
   }
 void vmFunction()
 {
   kernel->setA(4);
 }
};

class Kernel
{
   int a;
   Vm vm;
public:
   Kernel() : vm(this)
       {

       }
   void setA(int num)
   {
       a=num;
   }
};
int main()
{
int xy; cin >>  xy;
}

Redagavo Camp3r
Nuoroda į pranešimą
Dalintis kituose puslapiuose

#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;

class Vm
{

 class Kernel *kernel;
public:
   Vm(Kernel *p_kernel)
   {
      kernel=p_kernel;
   }
   void vmFunction(); 

};


class Kernel
{
   int a;
   Vm vm;
public:
   Kernel() : vm(this)
       {

       }
   void setA(int num)
   {
       a=num;
   }
};


void Vm::vmFunction()
{
 kernel->setA(4);
}

int main()
{
int xy; cin >>  xy;
}

Funkcijų implementacijas reikia rašyti po Kernel klase kad kompiliatorius ją "matytų".

Nuoroda į pranešimą
Dalintis kituose puslapiuose

#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;

class Vm
{

 class Kernel *kernel;
public:
   Vm(Kernel *p_kernel)
   {
      kernel=p_kernel;
   }
   void vmFunction(); 

};


class Kernel
{
   int a;
   Vm vm;
public:
   Kernel() : vm(this)
       {

       }
   void setA(int num)
   {
       a=num;
   }
};


void Vm::vmFunction()
{
 kernel->setA(4);
}

int main()
{
int xy; cin >>  xy;
}

Funkcijų implementacijas reikia rašyti po Kernel klase kad kompiliatorius ją "matytų".

 

Ačiū :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...