
OOP actualizar variable
Publicado por Jesus (2 intervenciones) el 16/09/2021 18:10:30
Tengo el siguiente código en C++ y deseo actualizar unas variables de una clase, desde el método de otra clase, pero no me es posible. En el código, necesito que cuando se haga el llamado al método de la clase a, desde allí llamar al método C de la clase c, y actualizar las variables prC y puC. Les agradezco la atención prestada.
Si el método C de la clase c lo llamo varias veces desde el main(), las variables si se actualizan.
#include <iostream>
#include <windows.h>
#include<conio.h>
#include<string>
using namespace std;
class c{
private:
int prC;
public:
c();
int puC;
void metodoC();
};
c::c(){
prC = 1;
puC = 1;
}
void c::metodoC(){
cout <<"MetodoC. Variable prC:"<<prC++ <<endl;
cout <<"MetodoC. Variable puC:"<<puC++ <<endl<<endl;
}
class a{
private:
int prA;
public:
a();
int puA;
void metodoA(c CC);
};
a::a(){
prA=5;
puA=5;
}
void a::metodoA(c CC){
cout <<"MetodoA. Variable prA:"<<prA++ <<endl;
cout <<"MetodoA. Variable puA:"<<puA++ <<endl<<endl;
cout <<"Desde MetodoA Llamando al MetodoC"<< endl;
CC.metodoC();
}
int main(){
a AAA;
c CCC;
for(int i=1;i<6;i++){
cout << "Desde main() llamando al metodoA"<<endl;
AAA.metodoA(CCC);
}
return 0;
}
/* Estos son los resultados por pantalla:
Si el método C de la clase c lo llamo varias veces desde el main(), las variables si se actualizan.
#include <iostream>
#include <windows.h>
#include<conio.h>
#include<string>
using namespace std;
class c{
private:
int prC;
public:
c();
int puC;
void metodoC();
};
c::c(){
prC = 1;
puC = 1;
}
void c::metodoC(){
cout <<"MetodoC. Variable prC:"<<prC++ <<endl;
cout <<"MetodoC. Variable puC:"<<puC++ <<endl<<endl;
}
class a{
private:
int prA;
public:
a();
int puA;
void metodoA(c CC);
};
a::a(){
prA=5;
puA=5;
}
void a::metodoA(c CC){
cout <<"MetodoA. Variable prA:"<<prA++ <<endl;
cout <<"MetodoA. Variable puA:"<<puA++ <<endl<<endl;
cout <<"Desde MetodoA Llamando al MetodoC"<< endl;
CC.metodoC();
}
int main(){
a AAA;
c CCC;
for(int i=1;i<6;i++){
cout << "Desde main() llamando al metodoA"<<endl;
AAA.metodoA(CCC);
}
return 0;
}
/* Estos son los resultados por pantalla:
Valora esta pregunta


0