Jump to content
Fórum Script Brasil
  • 0

David Melo
 Share

Question

Olá pessoal, sou novo no c++ e me deparei com um problema. Estou desenvolvendo um projeto em que uma variável inteira (X) deve sempre ser 1 unidade maior que outra variável inteira (Y), e que esta regra fosse fixa no programa e sempre que ele alterar o valor de Y o de X também se altere, isso se poder, sem ter que incrementar X de acordo com Y depois de alterar Y.

 

Por exemplo:

Y = 50;

X = (&Y) + 1;

cout<<X<<endl; //51

Y = 90;

cout<<x<<endl;//91

 

Desde já, obrigado a todos.

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Acho isso meio difícil, ao fim e al cabo o programa não faz coisas "sozinho", praticamente o que você quer é fazer uma atribuição a uma variável e que depois disso quer que outra passe a valer a mesma coisa + 1, porem isso só pode ser feito no momento que o valor de y for indicado, você precisa de alguma função, classe, etc que faça isso por vc, então deixo uma possível solução, não é exatamente o que você quer mas algo é algo. Se alguém conhecer alguma solução seria bem interesante saber.
 

#include <iostream>
using namespace std;

struct Cordenadas {
    int x;
    int y;
};

class Ponto: public Cordenadas {
public:
    void operator=( int valor ) { //graças ao operador = sobrecarregado podemos fazer p=70 por exemplo,
        y = valor;
        x = y+1; //a x se atribui o valor de y que vale 70 mais 1, ou seja 71
    }

};


int main () {

    Ponto p;
    p = 70; // y dentro da classe toma o valor de 70

    cout << "Y vale" << p.y << endl;
    cout << "X vale" << p.x << endl;

    cin.ignore();
    return 0;
}


O programa vai mostrar um pequeno warning pois operator= deveria retornar this, porem não é necesario, somente queremos usar o operador = para estabelecer facilmente o valor de Y, coisa que podemos prescindir si usar uma função membro normal e fizer algo como p.setY(70) que é algo muito mais grande que p=70. Sorte

Link to comment
Share on other sites

  • 0

Eu precisava que o programa apos analisar um numero criasse uma regra baseada no resultado da analise, e essa regra se aplicasse a X que esta baseado em Y. Eu pretendo usar uma array para definir o valor de X e continuar com o calculo que pode alterar o valor do Y equivalente, e nisto alterar o X que influenciara em outro Y. Na parte de usar sempre a função(ou regra) especifica que vai ser definida no inicio do código eu não sei como aplicar a classe, mas isso já ajuda a pensar...

 

Obrigado pela ajuda vangodp

Estava pensando em usar endereçamento e definir que X = (&Y)+1 ou X = (&Variável_Valor_Incrementar), só que nisso ele muda o endereço na memoria e não o valor...

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...