Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Problemas com Construtores


Renato Knupp

Pergunta

Editei o cod estava muito grande

Galera estou com problemas, seguinte nunca tinha visto C++ até a um mês atrás, conheço de programação e lógica mas em outras linguagens.

O problema é o seguinte tenho que fazer um trabalho (facul) e preciso trabalhar com construtores, mas também preciso utilizar os métodos set e get, simples? não está sendo, com todas as minha limitações (trabalhar com char em c++ é chato) eu cheguei ao seguinte código:

#include "stdafx.h"
#include <string.h>
#include <iostream>
using namespace std;
class Carro{
public:
    char
    *marca,
    *modelo;
    int ano;
    void setMarcaCarro(char *marca){
        this->marca = marca;
        }
    char* getMarcaCarro(){
        return this->marca;
    }
    void setModCarro(char *modelo){
        this->modelo = modelo;
    }
    char* getModCarro(){
        return this->modelo;
    }
    void setAnoCarro(int ano){
        this->ano = ano;
    }
    int getAnoCarro(){
        return this->ano;
    }
    carro( ){
    }
    carro(char *marca, char *modelo){
        this->marca = marca;
        this->modelo = modelo;
    }
};
int main(){
    Carro c1;
    Carro c2("volks","Gol");
    char marca[30],
        modelo[20];
    int ano;
    system("cls");
cout << endl << "Informe a marca do Veiculo: ";
cin >> marca;
c1.setMarcaCarro(marca);
cout << endl << "Informe o modelo do Veiculo: ";
cin >> modelo;
c1.setModCarro(modelo);
cout << endl << "Informe o Ano do Veiculo (9999): ";
cin >> ano;
c1.setAnoCarro(ano);
cout << endl << endl;
cout << " ** Caracteristicas do veiculo ** " << endl;
cout << "Marca: " << c1.getMarcaCarro() << endl;
cout << "Modelo: " << c1.getModCarro() << endl;
cout << "Ano: " << c1.getAnoCarro() << endl;
cout << endl << endl;
cout << endl << "Informe o Ano do Veiculo: ";
cin >> ano;
c2.setAnoCarro(ano);
cout << endl << endl;
cout << " ** Caracteristicas do veiculo ** " << endl;
cout << "Marca: " << c2.getMarcaCarro() << endl;
cout << "Modelo: " << c2.getModCarro() << endl;
cout << "Ano: " << c2.getAnoCarro() << endl;
cout << endl << endl;
system("pause");
return 0;
}

Bom o código funciona perfeitamente sem as partes comentadas, quando coloco elas , tudo vira uma zona, tenho um exemplo bem parecido e funciona perfeitamente.

minha intenção é digitar todos os dados do primeiro veiculo, e do segundo em diante e só digito algumas caracteristicas e ele atravez do metodos contrutores completa o resto, isso 5 vezes ( o cod é muito maior que o que esta ai).

Desde já obrigado pela ajuda.

Editado por Jonathan Queiroz
Adicionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Segue:

1>------ Build started: Project: teste, Configuration: Debug Win32 ------

1>Compiling...

1>teste.cpp

1>c:\users\knup\desktop\temp\teste\teste\teste.cpp(29) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

1>c:\users\knup\desktop\temp\teste\teste\teste.cpp(30) : warning C4183: 'carro': missing return type; assumed to be a member function returning 'int'

1>c:\users\knup\desktop\temp\teste\teste\teste.cpp(31) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

1>c:\users\knup\desktop\temp\teste\teste\teste.cpp(34) : warning C4183: 'carro': missing return type; assumed to be a member function returning 'int'

1>c:\users\knup\desktop\temp\teste\teste\teste.cpp(38) : error C2078: too many initializers

1>c:\users\knup\desktop\temp\teste\teste\teste.cpp(38) : error C2440: 'initializing' : cannot convert from 'const char [4]' to 'Carro'

1> No constructor could take the source type, or constructor overload resolution was ambiguous

1>Build log was saved at "file://c:\Users\Knup\Desktop\Temp\teste\teste\Debug\BuildLog.htm"

1>teste - 4 error(s), 2 warning(s)

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Link para o comentário
Compartilhar em outros sites

  • 0

Não cheguei a testar como o programa se comporta na prática, mas o erro de compilação está na forma como os construtores foram escritos.

carro( ){
    }
    carro(char *marca, char *modelo){
        this->marca = marca;
        this->modelo = modelo;
    }

O correto seria escrever Carro (e não carro), já que o C++ é case sensitive.

Veja se isso resolve o problema, e poste aqui se funcionou ou não.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...