functies simpeler

Status
Niet open voor verdere reacties.

mmatteman

Gebruiker
Lid geworden
3 sep 2008
Berichten
287
hallo,
ik vond op internet een tutorial over functies. Deze voorbeeld code kwam daaruit:
Code:
#include <iostream>

using namespace std;

int mult ( int x, int y );

int main()
{
  int x;
  int y;
  
  cout<<"Please input two numbers to be multiplied: ";
  cin>> x >> y;
  cin.ignore();
  cout<<"The product of your two numbers is "<< mult ( x, y ) <<"\n";
  cin.get();
}

int mult ( int x, int y )
{
  return x * y;
}

Mij valt op dat eerst functie
Code:
int mult ( int x, int y );
wordt genoemd, en later pas wordt gezegd wat die functie doet:
Code:
int mult ( int x, int y )
{
  return x * y;
}

Kan dat niet bijvoorbeeld zo?
Code:
#include <iostream>

using namespace std;
int vermenigvuldig (int x, int y) {
    return x * y;
}
int main()
{
    int x;
    int y;
    cin >> x >> y;
    cout << vermenigvuldig (x, y);
}

waarbij je meteen al aan het begin zegt wat de functie vermenigvuldig doet?
 
Dat kan. je kan de functie statisch maken of inline:

Code:
static int mult(int x, int y) { return x * y; }
inline int mult(int x, int y) { return x * y; }

Het verschil tussen inline en static is dat inline geen fysieke functie wordt in de uiteindelijke executable. De compiler plakt de functie dus als het ware overal waar hij aangeroepen wordt.
 
Dat kan. je kan de functie statisch maken of inline:

Code:
static int mult(int x, int y) { return x * y; }
inline int mult(int x, int y) { return x * y; }

Het verschil tussen inline en static is dat inline geen fysieke functie wordt in de uiteindelijke executable. De compiler plakt de functie dus als het ware overal waar hij aangeroepen wordt.

Volgens mij is de vraag van de TS meer 'waarom function prototypes'.

@TS: http://en.wikipedia.org/wiki/Function_prototype
 
Dat kan. je kan de functie statisch maken of inline:

Code:
static int mult(int x, int y) { return x * y; }
inline int mult(int x, int y) { return x * y; }

Het verschil tussen inline en static is dat inline geen fysieke functie wordt in de uiteindelijke executable. De compiler plakt de functie dus als het ware overal waar hij aangeroepen wordt.

buiten dat de definities van jou van beide types niet geheel correct zijn zijn ze ook niet nodig hier, het heeft niets te maken met wat de TS wil

@TS je compiler wilt kennen wat je gebruikt, dat betekent dus dat je twee dingen kunt doen, je kunt zoals in het 1e voorbeeld tegen hem zeggen dat je hem later gaat vertellen wat het is, of je doet in jouw voorbeeld eerst vertellen wat de methode is en dan pas aanroepen
 
buiten dat de definities van jou van beide types niet geheel correct zijn zijn ze ook niet nodig hier, het heeft niets te maken met wat de TS wil

@TS je compiler wilt kennen wat je gebruikt, dat betekent dus dat je twee dingen kunt doen, je kunt zoals in het 1e voorbeeld tegen hem zeggen dat je hem later gaat vertellen wat het is, of je doet in jouw voorbeeld eerst vertellen wat de methode is en dan pas aanroepen

Volgens mij wil de TS juist direct de functie implementeren bij de declaratie. En wat zou er niet goed zijn aan mijn definities...
 
Wat mmatteman wil kan prima. Het heeft geen voor- of nadelen hooguit vinden sommigen de oorspronkelijke code overzichtelijker.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan