Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
seravath

function does not take 0 arguments

Recommended Posts

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";
}

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.