Page 1 of 1

Tutorial on Functions Introduction to writing functions Rate Topic: ***-- 2 Votes

#1 Pontus  Icon User is offline

  • Cattlebruiser

Reputation: 18
  • View blog
  • Posts: 612
  • Joined: 28-December 06

Posted 22 April 2007 - 11:02 AM

Functions,

This is a tutorial on how to create functions and what you can do with them.
This is the syntax used to declare functions:
"return data type" "name of function" ("all the parameters, seperated by a comma");

Examples:
void noParameters(); //Takes no paramerers, returns nothing.
void test (int a, int b); //Takes two integer parameters, returns nothing.
int sum(int a, int b); //Takes two integer parameters, returns an integer.

As you can see, you dont need to include parameters.

Right, lets start with the a simple function:
#include <iostream>

using namespace std;

void testfunction(); //you need to declare each function just like a variable

int main(){
testfunction(); // call your function
return 0;
}

void testfunction(){ //here goes the code in your function
cout<<"This is a function"<<endl;
}

As you can see, it is quite simple. Declare a function, write that function and call it.
Ok, so if you want to let your function calculate something you need to give your function parameters.
#include <iostream>

using namespace std;

void calculate(int a,int b); //you need to give the parameters after the name of your function

int main(){
calculate(10,21);// call your function
return 0;
}

void calculate(int a,int b){//here goes the [code] in your function
int c=a+b;
cout<<"the solution is "<<c<<endl;
}

Here you go, a function that takes two parameters and calculates the sum.
Now if you dont want to display the result, instead you can calculate two numbers and give the sum as value for a third integer. You can do this in two ways:
The first 1, using return
#include <iostream>

using namespace std;
int calculate(int a;int b); //yes, an integer as a function

int main(){
int sum = calculate(10,20);
cout << sum; //the integers' value is now 30
return 0;
}

int calculate(int a,int b)
{
c = a + b;
return c; //return the value of the int c
}

This might look strange but the function will be handled as an ordinary integer, you can use it to assign it to an integer or you can display it directly:
cout<<calculate(10,20)

Now, the second way is using referances:
#include <iostream>

using namespace std;

void calculate(int a,int b,int& c); //you need to give the parameters after the name of your function

int main(){
int sum;
calculate(10,20,sum);
cout<<sum;//the integers' value is now 30
return 0;
}

void calculate(int a,int b,int& c) //the last parameter is a reference to an int, this will hold the sum of the 2 first integers
{
c=a+b;
}

Let me explain this: if you give a parameter to a function it will make a copy of it, so it wont change the values, by giving it a reference, it will change the value of the refered integer.
Sometimes this will be useful and sometimes it wont.

Is This A Good Question/Topic? 2
  • +

Replies To: Tutorial on Functions

#2 eredeath  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 5
  • Joined: 14-September 07

Posted 30 September 2007 - 04:58 PM

Good tutorial :-)
Was This Post Helpful? 0
  • +
  • -

#3 Elcric  Icon User is offline

  • D.I.C Regular
  • member icon

Reputation: 101
  • View blog
  • Posts: 453
  • Joined: 02-May 09

Posted 02 May 2009 - 11:27 AM

Excellent! Can a C++ function return more than one piece of information? :D
Was This Post Helpful? 0
  • +
  • -

#4 Pontus  Icon User is offline

  • Cattlebruiser

Reputation: 18
  • View blog
  • Posts: 612
  • Joined: 28-December 06

Posted 03 May 2009 - 09:47 AM

Nope, It can return only one. If you want it to modify more than one piece of information, you can use parameters.
Was This Post Helpful? 0
  • +
  • -

#5 Elcric  Icon User is offline

  • D.I.C Regular
  • member icon

Reputation: 101
  • View blog
  • Posts: 453
  • Joined: 02-May 09

Posted 03 May 2009 - 09:55 AM

Thanks! :D
Was This Post Helpful? 0
  • +
  • -

#6 ezgass  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 14-September 09

Posted 15 September 2009 - 12:21 PM

View PostElcric, on 2 May, 2009 - 10:27 AM, said:

Excellent! Can a C++ function return more than one piece of information? :D


Just use pointers and you can get as many values as you need! Pointers have power! :)
Was This Post Helpful? 0
  • +
  • -

#7 pluto1  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 5
  • Joined: 18-December 09

Posted 19 December 2009 - 04:49 PM

brilliant! Thank you!
Was This Post Helpful? 0
  • +
  • -

#8 PlasticineGuy  Icon User is offline

  • mov dword[esp+eax],0
  • member icon

Reputation: 281
  • View blog
  • Posts: 1,436
  • Joined: 03-January 10

Posted 10 March 2010 - 12:57 AM

I would add a section on default arguments:
int divide(int x, int y = 1) {
    if(y == 0) throw "Division by 0.";
    return x / y;
}
int main() {
    return divide(5);
}
Also note with prototypes:
int divide(int x, int y = 1);
int main() {
    return divide(5);
}
int divide(int x, int y) { //note no = 1 here
    if(y == 0) throw "Division by 0.";
    return x / y;
}

This post has been edited by PlasticineGuy: 10 March 2010 - 12:58 AM

Was This Post Helpful? 0
  • +
  • -

Page 1 of 1