Jump to content
Fórum Script Brasil
  • 0

Acessando variável de uma classe em outra classe.


JardelCss
 Share

Question

Boa noite pessoal, minha duvida é a seguinte preciso acessar uma variável de uma classe especifica para usar a mesma em outra classe mas não sei como fazer-lo, segue "parte" do código a ser analisado.

--------------------------------------------------------------------------------------------------------------------------------

Documento DosOperation.h        (Este é o cabeçalho onde se encontra a variável que quero acessar.)

#ifndef DOSOPERATION_H_INCLUDED
#define DOSOPERATION_H_INCLUDED

class Operation{   //Classe responsável por todas as operações matemáticas.
private:
    float fResult;       //Esta é a variável que preciso acessar
    float fResultModule; //Variável para armazenar valores de Modulo(Resto).
    float pX;       //Esta é a variável que preciso acessar
    float pY;       //Esta é a variável que preciso acessar

public:
    int OpAddSet(float fX,float fY);   //Função para somar valores.
    int OpSubSet(float fX,float fY);   //Função para subtrair valores.
    int OpMultSet(float fX,float fY);  //Função para multiplicar valores.
    int OpDivSet(int fX,int fY);   //Função para dividir valores.
    int OpModSet(int fX,int fY);   //Função para calcular o resto.
    float OpResultGet();      //Função para retornar resultados.
    int OpResultModuletGet(); //Função para retornar resto de uma divisão.
};
#endif

--------------------------------------------------------------------------------------------------------------------------------

Documento DosInputOutput.h        (Este é o cabeçalho do documento a seguir.)

#ifndef DOSINPUTOUTPUT_H_INCLUDED
#define DOSINPUTOUTPUT_H_INCLUDED

class Output{

public:
    void OpPrint(); //Função para mostrar valores.

};
#endif // DOSINPUTOUTPUT_H_INCLUDED

--------------------------------------------------------------------------------------------------------------------------------

Documento DosInputOutput.cpp        (Este é o arquivo onde as variáveis devem ser usadas .)

#include <iostream>
#include "DosInputOutput.h" //Inclui o cabeçalho DosInputOutput.
#include "DosOperation.h"   //Inclui o cabeçalho DosOperation.

using std::cout;
using std::cin;
using std::endl;

void Output::OpPrint(){
    cout << "endlA soma do valor " << pX << " entre " << pY << " e: "  //Na cor verde as variáveis que preciso acessar.
    << fResult; //Função que mostra o resultado na tela.
}

--------------------------------------------------------------------------------------------------------------------------------

O erro encontrado é ||=== Build: Debug in DosCalculator (compiler: GNU GCC Compiler) ===|
|In member function 'void Output::OpPrint()':|
|10|error: 'pX' was not declared in this scope|
|10|error: 'pY' was not declared in this scope|
|11|error: '::fResult' has not been declared|
||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Edited by JardelCss
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Pode ser friend class (classes amigas).
 

#include <iostream>
using namespace std;

class Operation{
private:
    float fResult; 
    float fResultModule; 
    float pX;  
    float pY;
public:
    //...
    //...    
    friend class Output;//<- Classes Amigas... agora tenho acesso completo da parte privada de Operation desde Output
};

class Output{
public:
    void OpPrint( Operation &obj ); 

};

void Output::OpPrint( Operation &obj ){
    cout << "endlA soma do valor " << obj.pX << " entre " << obj.pY << " e: " << obj.fResult;
} 

int main (){
    Operation op;   //op não é amiga de out, si não o contrario.
    Output    out; //out é amiga de op
    
    out.OpPrint(op); // Usando casse amiga
    
    
    cin.ignore();
    return ;
}

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...