+ Responder ao Tópico



  1. #1

    Padrão Problema Construtor

    Galera o que tem errado no código abaixo... Quando compilo diz que 4 "new types may not be defined in a return type " and " return type specification for constructor invalid"... sou novo em c++ então para mim esta tudo correto mas não da certo..

    Figuras.h
    Código :
    #include <iostream>
     
    using std:: cout;
    using std:: endl;
    using std:: strcpy;
     
    class Figuras{
          public:
                 Figuras();
                 Figuras(char *, char *, double);
                 virtual double calcArea(); 
          protected:
                    char nome[];
                    double area;
                    char cor[];
          }

    Figuras.cpp
    Código :
    #include "Figuras.h"
     
    Figuras::Figuras(char nomeE[], char corE[], double areaE)
    {
         strcpy(nome, nomeE);
         strcpy(cor, corE);
         area = areaE;
    }

  2. #2

    Padrão

    Primeiro problema:
    Falta o ";" após a "}" na declaração da classe.

    Segundo problema:
    Os tipos dos argumentos presentes na declaração do construtor "Figuras(char *, char *, double)" não coincidem com os tipos usados na implementação "Figuras::Figuras(char nomeE[], char corE[], double areaE)". Ponteiro != array.

    Terceiro problema:
    Quantos bytes você pretende armazenar nas propriedades "nome" e "cor"? Você precisa definir isto na declaração destes arrays, ou então torná-los ponteiros e usar alocação dinâmica. Cuidado com as funções strcpy, strcat, sprintf, e afins. Prefira sempre funções que que lhe permitem passar por argumento o tamanho do bloco de memória onde serão gravados os dados. Por ex: strncpy, strncat, snprintf, vsnprintf, e assim por diante.

    Espero ter ajudado.

    Saudações,
    Jardel
    Última edição por jweyrich; 08-07-2009 às 14:47.