Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucasseribeiro

Como encapsular matriz dentro de classe?

Recommended Posts

Oi povo, um ótimo ano novo a todos...

 

Toda vez queu tô pegando o jeito do C++, tenho que parar pra fazer outra coisa!

Agora eu tô implementando uma calculadora do custo final para alimentos como mini-pizza.

A pessoa entra com a receita e algo mais e, ao enter: os resultados... Assim, declarei a classe:

#include <iostream>
#include <cstdio> // Em todo caso...

using namespace std;

    // A função main() está em outro arquivo...
    // Mas uso para testar sintaxe no terminal
    // do Debian com o GCC.
    int main(){ return(0); };

class Precificador {

    private: string receita[0][0];

    public:

    // Como posso encapsular receita[0][0] ??

    // Set
    void definir_receita(int x, int y, string valor){
        receita[x][y] = valor; };

    // Get
    string obter_receita(){ return(receita); };

};

Grato

Lucas Ribeiro

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz "string receita[][]", e o g++ falou que, com a exceção do primeiro, todos os outros índices tem que estar dimensionados.

 

Então me propus a inicializá-los com o menor valor não-nulo e depois alterá-los livremente: é possível né?

 

Mas aí, como você falou isso, então inicializei só o segundo índice com 99, daí get e set deram certo.

 

Mas eu só testei a sintaxe, agora vou testar o uso... Mas aí estarei aprisionado para sempre nas 99 casas??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você souber "modificar" o comportamento do programa (ou do cin/getline) não vai precisar de array de string.

Algo possível de se fazer é verificar se foi informado 2 \n seguidos e parar a leitura.

Outra forma é usar um container tipo o vector (http://en.cppreference.com/w/cpp/container/vector ) ou o array (C++11)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.