Jump to content

function does not take 0 arguments


seravath
 Share

Recommended Posts

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";
}
Link to comment
Share on other sites

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.

Link to comment
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
 Share

×
×
  • Create New...

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.