Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

seravath

function does not take 0 arguments

Mensagens Recomendadas

seravath

Boas estou a fazer um programa simples em c++ no entanto aparece-me o erro: "function does not take 0 arguments"

penso que o problema passa pelo acesso aos dados privados através das expressões get... mas agradeço opinioes.

o código é este:

#include <iostream>
using namespace std;

class rectangulo{ 
float comprimento;
float largura;
public:
float setcomprimento(float x){comprimento = x;}
float setlargura(float y){largura = y;}
float getarearectangulo () {return comprimento * largura;}     
}r1;

class quadrado{
float lado;
public:
float setlado(float x){lado = x;}
float getareaquadrado () {return lado * lado;}   
}q1;

class circunferencia{
float raio;
public:
float setraio(float x){raio = x;}
float getareacirculo () {return 3.1416 * raio * raio;}
}c1;

int main(){

cout << "Calculadora de areas: " << '\n';

cout << "Area do rectangulo" << '\n';
cout << "Introduza o comprimento do rectangulo: " << '\n';
cin >> r1.setcomprimento();                                                     ----->>>>dá o erro aqui
cout <<"Introduza a largura do rectangulo: " << '\n';
cin >> r1.setlargura();                                                              ----->>>>dá o erro aqui
cout << " A area do rectangulo e de: " << r1.getarearectangulo()<< "\n";


cout << "Area do quadrado" << '\n';
cout << "Introduza o lado do quadrado:" << '\n';
cin >> q1.setlado();                                                                   ----->>>>dá o erro aqui
cout << "A area do quadrado e:" << q1.getareaquadrado()<< "\n";


cout << "Area da circunferencia" << '\n';
cout << "Introduza o raio do circulo:" << '\n';
cin  >> c1.setraio();                                                                   ----->>>>dá o erro aqui
cout<< " A area do circulo e:" << c1.getareacirculo() << "\n";
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Colector Boy

Penso que tem haver com o facto de as tuas funções estarem a receber como parametros o valor que queres la colocar.

Tu tens:

float setcomprimento(float x)

NÂO

float setcomprimento()

Para fazeres isto:

cin >> r1.setcomprimento(); 

tens que definir a sobrecarga de operadores.

Que basicamente é dizer o ao cin o que queres que faça quando encontrar a tua classe.

Aqui tens um exemplo:

http://www.cplusplus.com/forum/beginner/14219/

Nesse programa tens a sobrecarga de operador e dessa forma podes ver como aplicar aquilo que pretendes.

Espero ter ajudado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.