Menu
Coddy logo textTech

Methods (Member Functions)

Part of the Object Oriented Programming section of Coddy's C++ journey — lesson 8 of 104.

Member functions define what an object can do. They have a return type, a name, and optional parameters.

Method returning a value

class Calculator {
public:
    int add(int a, int b) {
        return a + b;
    }
};

Void method (no return value)

class Printer {
public:
    void printMessage(std::string msg) {
        std::cout << msg << std::endl;
    }
};

Method returning bool

class Checker {
public:
    bool isPositive(int num) {
        return num > 0;
    }
};

Declaring in header, implementing in source

// Calculator.h
class Calculator {
public:
    int add(int a, int b);
};

// Calculator.cpp
int Calculator::add(int a, int b) {
    return a + b;
}

The return type goes before the method name. Use void when a method doesn't return anything. The :: scope resolution operator links implementations to their class.

challenge icon

Challenge

Medium

Implement four member functions for the StringHelper class with different return types and parameters:

  • getLength() — returns int, the length of text
  • toUpperCase() — returns std::string, text in uppercase
  • contains(std::string word) — returns bool, whether text contains the word
  • repeat(int times) — returns std::string, text repeated with spaces

Cheat sheet

Member functions define what an object can do. They have a return type, a name, and optional parameters.

Method returning a value:

class Calculator {
public:
    int add(int a, int b) {
        return a + b;
    }
};

Void method (no return value):

class Printer {
public:
    void printMessage(std::string msg) {
        std::cout << msg << std::endl;
    }
};

Method returning bool:

class Checker {
public:
    bool isPositive(int num) {
        return num > 0;
    }
};

Declaring in header, implementing in source:

// Calculator.h
class Calculator {
public:
    int add(int a, int b);
};

// Calculator.cpp
int Calculator::add(int a, int b) {
    return a + b;
}

The return type goes before the method name. Use void when a method doesn't return anything. The :: scope resolution operator links implementations to their class.

Try it yourself

#include <iostream>
#include "StringHelper.h"

int main() {
    std::string input;
    std::getline(std::cin, input);
    
    StringHelper helper;
    helper.text = input;
    
    std::cout << "Original: " << helper.text << std::endl;
    std::cout << "Length: " << helper.getLength() << std::endl;
    std::cout << "Uppercase: " << helper.toUpperCase() << std::endl;
    std::cout << "Contains 'World': " << (helper.contains("World") ? "yes" : "no") << std::endl;
    std::cout << "Repeated: " << helper.repeat(3) << std::endl;
    return 0;
}
quiz iconTest yourself

This lesson includes a short quiz. Start the lesson to answer it and track your progress.

All lessons in Object Oriented Programming