Swiftorial Logo
Home
Swift Lessons
Tutorials
Learn More
Career
Resources

Understanding Member Functions in C++

Introduction

In C++, member functions are functions that are associated with a class. They are used to perform operations on the data members of the class. Member functions provide a way to define the behavior of the objects created from the class. In this tutorial, we will explore the different types of member functions and how to use them effectively.

Defining Member Functions

Member functions can be defined inside or outside of the class definition. When defined inside the class, they are implicitly inline. Here is an example of a class with member functions defined both inside and outside the class.

class Example {
public:
    // Member function defined inside the class
    void display() {
        cout << "Display function" << endl;
    }

    // Member function prototype
    void show();
};

// Member function defined outside the class
void Example::show() {
    cout << "Show function" << endl;
}
                

Types of Member Functions

There are several types of member functions in C++:

  • Simple Member Functions
  • Const Member Functions
  • Static Member Functions
  • Inline Member Functions
  • Friend Functions (not technically member functions but can access private members)

Simple Member Functions

Simple member functions are the most common type and are used to perform actions on the class's data members.

class Simple {
private:
    int data;
public:
    void setData(int d) {
        data = d;
    }
    int getData() {
        return data;
    }
};
                

Const Member Functions

Const member functions do not modify any data members of the class. They are declared with the const keyword.

class ConstExample {
private:
    int value;
public:
    void setValue(int v) {
        value = v;
    }
    int getValue() const {
        return value;
    }
};
                

Static Member Functions

Static member functions can be called without an object of the class. They can only access static data members.

class StaticExample {
private:
    static int count;
public:
    static void incrementCount() {
        count++;
    }
    static int getCount() {
        return count;
    }
};

// Define and initialize static member
int StaticExample::count = 0;
                

Inline Member Functions

Inline member functions are defined inside the class definition and are implicitly inline. They are expanded in line where they are called, which can improve performance.

class InlineExample {
public:
    void display() {
        cout << "Inline display function" << endl;
    }
};
                

Friend Functions

Friend functions are not member functions but can access private and protected members of the class. They are declared with the friend keyword.

class FriendExample {
private:
    int data;
public:
    FriendExample(int d) : data(d) {}
    friend void showData(FriendExample &obj);
};

void showData(FriendExample &obj) {
    cout << "Data: " << obj.data << endl;
}
                

Conclusion

Member functions are an essential part of classes in C++. They provide the functionality and behavior of the objects created from the class. Understanding the different types of member functions and how to use them effectively is crucial for writing efficient and maintainable C++ code.