Addition program using class and object in C++

PROGRAM : 
#include <iostream>
#include <string.h>
using namespace std;
 
class addition
{
    private:
        int var1, var2, result;
    public:
        void getValue();
        int addOperation();
};
 
void addition :: getValue()
{
        cout << "Enter the first value : " << "\n";
        cin >> var1;
        cout << "Enter the second value : " << "\n";
        cin >> var2;
}
 
int addition :: addOperation()
{
        result = var1 + var2;
        return result;
}
 
int main(int argc, char *argv[])
{
        addition obj1;
        int output = 0;
        obj1.getValue();
        output = obj1.addOperation();
        cout << "Result : " << output << endl;
        return 0;
}
OUTPUT : 
Enter the first value : 
25
Enter the second value : 
30

Result : 55

Create static library for C program in Linux

Consider your C program has three files, which are addSub.c, mulDiv.c and main.c

addSub.c : 
int add(int x, int y)
{
    return x + y;
}
 
int sub(int x, int y)
{
        return x - y;
}
mulDiv.c : 
int mul(int x, int y)
{
    return x * y;
}
 
int div(int x, int y)
{
        return x / y;
}
main.c : 
#include <stdio.h>
 
int main(int argc, char *argv[])
{
    printf("%d\n", add(10, 15));
    printf("%d\n", sub(50, 15));
    printf("%d\n", add(10, 3));
    printf("%d\n", add(100, 4));
    return 0;
}

1 . Compile and create object file for addSub.c and mulDiv.c 
gcc -c addSub.c mulDiv.c -Wall
2.  Create static library( liboperation.a ) for compiled files 
ar -cvq libopeartion.a addSub.o mulDiv.o
3.  We can list the available files from library file using following
ar -t libopeartion.a
4. Compile the main program with linking the library 
gcc -o output main.c libopeartion.a
5. Run the created output executable file
./output 

Passing function as argument in C


#include <stdio.h>
int add(int, int);
int sub(int, int);
int mul(int, int);
int div(int, int);
int myfunPtr(int , int , int(*)(int, int));
 
int add(int var1, int var2)
{
 return var1 + var2;
}
 
int sub(int var1, int var2)
{
 return var1 - var2;
}
 
int mul(int var1, int var2)
{
 return var1 * var2;
}
 
int div(int var1, int var2)
{
 return var1 / var2;
}
int myfunPtr(int a, int b, int(*argFun)(int, int))
{
 int x = 0;
 x = (*argFun)(a, b);
 return x;
}
 
int main(int argc, char **argv)
{
 int x = 0;
 x = myfunPtr(100, 5, add);
 printf("o/p : %d\n", x);
 
 x = myfunPtr(100, 5, sub);
 printf("o/p : %d\n", x);
 
 x = myfunPtr(100, 5, mul);
 printf("o/p : %d\n", x);
 
 x = myfunPtr(100, 5, div);
 printf("o/p : %d\n", x);
 
 return 0;
}



Function table in C



#include <stdio.h>
int add(int, int);
int sub(int, int);
int mul(int, int);
int div(int, int);
 
int add(int var1, int var2)
{
    return var1 + var2;
}
 
int sub(int var1, int var2)
{
        return var1 - var2;
}
 
int mul(int var1, int var2)
{
        return var1 * var2;
}
 
int div(int var1, int var2)
{
        return var1 / var2;
}
 
int main(int argc, char **argv)
{
        int (*fun_table[4]) ();
        int result = 0;
        
        fun_table[0] = add;
        fun_table[1] = sub;
        fun_table[2] = mul;
        fun_table[3] = div;
        
        result = (*fun_table[0])(100, 5);
        printf("add : %d\n", result);
        
        result = (*fun_table[1])(100, 5);
        printf("sub : %d\n", result);
        
        result = (*fun_table[2])(100, 5);
        printf("mul : %d\n", result);
        
        result = (*fun_table[3])(100, 5);
        printf("div : %d\n", result);
        
        return 0;
}



Function pointer in C


One pointer variable can point to another variable. 

Similarly one function can point another function. 


This method is helped in callback mechanism. i,e) passing function as argument to anther function.



#include <stdio.h>
int add(int, int);
 
int add(int var1, int var2)
{
 return var1 + var2;
}
 
int main(int argc, char **argv)
{
 int x = 0;
 int (*functionPtr)(int, int);
 functionPtr = &add;
 x = (*functionPtr)(10, 15);
 printf("%d\n", x);
 return 0;
}