Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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??
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)
Entendido.
Grato
Primeiro pergunte-se se está certo ter um array de tamanho 0....