Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • C++
  • C++ Classes and Objects
  • C++ Polymorphism
  • C++ Inheritance
  • C++ Abstraction
  • C++ Encapsulation
  • C++ OOPs Interview Questions
  • C++ OOPs MCQ
  • C++ Interview Questions
  • C++ Function Overloading
  • C++ Programs
  • C++ Preprocessor
  • C++ Templates
Open In App
Next Article:
Access Modifiers in C++
Next article icon

C++ Classes and Objects

Last Updated : 30 Apr, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report
Try it on GfG Practice
redirect icon

In C++, classes and objects are the basic building block that leads to Object-Oriented programming in C++. We will learn about C++ classes, objects, look at how they work and how to implement them in our C++ program.

C++ Classes

A class is a user-defined data type, which holds its own data members and member functions that can be accessed and used by creating an instance of that class. A C++ class is like a blueprint for an object.

For Example: Consider the Class of Cars. There may be many cars with different names and brands but all of them will share some common properties like all of them will have 4 wheels, Speed Limit, Mileage range, etc. The car can also accelerate, turn, apply brakes, etc. So here, the Car is the class, wheels, speed limits, and mileage are its attributes (data members) and accelerate, turn, apply brakes are its methods (member functions).

Create a Class

A class must be defined before its use. C++ class is defined using the keyword class keyword as shown:

C++
class className { access_specifier:      // data member      // member method }; 

where,

  • Data Members: These are the variables that are defined inside the class.
  • Member Functions: Functions declared inside a class. Also referred to as a member method.

Example:

C++
class GfG { public:      // Data member     int val;          // Member function     void show() {         cout << "Value: " << val << endl;     } }; 

In the above, GfG class is created with a data member val and member function show(). Here, member function is defined inside the class, but they can also be just declared in the class and then defined outside using scope resolution operator ::

The above is called class definition or template.

C++ Objects

When a class is defined, only the specification (attributes and behaviour) for the object is defined. No memory is allocated to the class definition. To use the data and access functions defined in the class, we need to create its objects.

Objects are the actual entities that are created as an instance of a class. There can be as many objects of a class as desired. For example, in the above, we discussed the class of Cars. If we create an actual car based on the properties of the Car class, the car we made is the object of that class.

Create Object

Once the class is defined, we can create its object in the same way we declare the variables of any other inbuilt data type.

C++
className objectName; 

This statement creates an object of className class.

Member Access

Members of the class can be accessed inside the class itself simply by using their assigned name.

To access them outside, the (.) dot operator is used with the object of the class.

C++
obj.member1 // For data members obj.member2(..) // For functions 

There obj is the name of the object of the given class, member1 is data member and member2 is member function.

Access Modifiers

In C++ classes, we can control the access to the members of the class using Access Specifiers. Also known as access modifier, they are the keywords that are specified in the class and all the members of the class under that access specifier will have particular access level.

In C++, there are 3 access specifiers that are as follows:

  1. Public: Members of the class can be accessed from outside the class.
  2. Private: Private members can only be accessed within the class itself.
  3. Protected: Protected members can be accessed within the class and by derived classes.

If we do not specify the access specifier, the private specifier is applied to every member by default.

Example:

C++
//Driver Code Starts{ #include <bits/stdc++.h> using namespace std;  // Creating a class class GfG { public:      // Data member     int val;          // Member function     void show() {         cout << "Value: " << val << endl;     }      };  int main() {      //Driver Code Ends }      // Create Object     GfG obj;          // Access data member and assign     // it some value     obj.val = 10;          // Access member method     obj.show();  //Driver Code Starts{          return 0; } //Driver Code Ends } 

Output
Value: 10 

Whether we can access a member of a class depends on the access specifier in which it is declared. In the above example, if the val variable was declared as private, then we would not have been able to access it in the main function.

Explanation:

Special Member Functions

In C++ classes, there are some special member functions that are essential to manage objects and provide some basic functionalities.

Constructor

Constructors are special class members which are called by the compiler every time an object of that class is instantiated. They are used to construct the objects and making them ready for use. Constructors have the same name as the class.

Example:

C++
//Driver Code Starts{ #include <bits/stdc++.h> using namespace std;  class MyClass { public:  //Driver Code Ends }      // Constructor     MyClass() {         cout << "Constructor called!";     }  //Driver Code Starts{ };  int main() {          // Constructor automatically      // called when object is created.     MyClass obj;     return 0; }  //Driver Code Ends } 

Output
Constructor called!

Note: If the programmer does not define the constructor, the compiler automatically creates the default, copy and move constructor.

Destructors

Destructor is another special member function that is called by the compiler when the scope of the object ends. It deallocates all the memory previously used by the object of the class so that there will be no memory leaks. The destructor also has the same name as the class but with tilde (~) as prefix.

Example:

C++
//Driver Code Starts{ #include <bits/stdc++.h> using namespace std;  class MyClass { public:     MyClass() {         cout << "Constructor called!" << endl;     }  //Driver Code Ends }      // Destructor     ~MyClass() {         cout << "Destructor called!";     }  //Driver Code Starts{ };  int main() {     MyClass obj;     // Destructor will be called      // automatically when obj goes out of scope     return 0; }  //Driver Code Ends } 

Output
Constructor called! Destructor called!

Static Members

Members of the class can be declared as static. These static members of a class are not associated with the objects of the class but with the class itself. The main feature of these members is that they are accessible directly through the class without creating any objects. Both data members and member methods can be static:

Static Data Members

Static data members shared by all objects of the class, meaning only one copy exists for all objects of the class and they are declared with the static keyword.

Example:

C++
//Driver Code Starts{ #include <iostream> using namespace std;  //Driver Code Ends }  class GfG { public:     static int val; };  // Initialize static member int GfG::val = 22; int main() {          // Access without creating object     cout << GfG::val << endl;  //Driver Code Starts{ } //Driver Code Ends } 

Output
22 

Static Member Function

Static member functions are associated with the class itself rather than any specific object. They can only access static data members and cannot access instance data members. Static member functions are called using the class name, not the object.

We defined the member function inside the class, but we can also define the member function outside the class. To define a member function outside the class definition, we use scop resolution (::) operator.

Example:

C++
//Driver Code Starts{ #include <iostream> using namespace std;  //Driver Code Ends }  class GfG { public:     static void printHello();  };  // Definintion of static member function void GfG::printHello() {     cout << "Hello World"; } int main() {          // Access without creating object     GfG::printHello();  //Driver Code Starts{          return 0; } //Driver Code Ends } 

Output
Hello World

Friend Class and Function

In C++, friend classes and functions allow access to the private and protected members of other classes:

A friend class has the ability to access the private and protected members of other classes where it is declared as a friend. This feature can be useful when it is necessary for one class to access the private and protected members of another class.

A friend function in C++ is similar to a friend class. It can be given special permission to access the private and protected members of a class. Although it is not a member function of the class, it can still access and modify those private and protected members because it is declared as a friend.

Local Class

Classes are generally declared in global scope and are accessible to every function or other classes once they are defined. But C++ also provides facility to define a class within a function. It is called local class in C++ and is only accessible in that function.

Nested Class

A nested class is a class defined within another enclosing class. As a member of the enclosing class, it has the same access rights as any other member. The members of the enclosing class do not have special access to the members of the nested class; the standard access rules apply.

Enum Class

Enum classes in C++ are a safer and more organized way of using enums. They help to group related constants together while avoiding naming problems and ensuring better type safety.

this Pointer

In C++, this pointer is a pointer that points to the current instance of a class. It is used within the member functions of a class to refer to the object of that class. This pointer allows access to the calling object’s data and methods within its own member functions.

C++
class A{     int n;     A(int n) {         this->n = n;     } } 

Class vs Object

The following table lists the primary differences between the classes and objects in C++:

ClassObject
A blueprint or template for creating objects.An instance of a class with actual values.
No memory is allocated for a class until an object is created.Memory is allocated when an object is created.
Conceptual entity describing structure and behaviour.A real-world entity created from the class.
Defines properties and functions common to all objects of that type.Stores specific data and manipulates it using class functions.
Represents a general concept or type.Represents a specific instance of the class.


Next Article
Access Modifiers in C++

A

Abhirav Kariya
Improve
Article Tags :
  • C++
  • C++-Class and Object
  • CPP-OOPs
Practice Tags :
  • CPP

Similar Reads

  • C++ Programming Language
    C++ is a computer programming language developed by Bjarne Stroustrup as an extension of the C language. It is known for is fast speed, low level memory management and is often taught as first programming language. It provides: Hands-on application of different programming concepts.Similar syntax to
    5 min read
  • C++ Overview

    • Introduction to C++ Programming Language
      C++ is a general-purpose programming language that was developed by Bjarne Stroustrup as an enhancement of the C language to add object-oriented paradigm. It is a high-level programming language that was first released in 1985 and since then has become the foundation of many modern technologies like
      4 min read

    • Features of C++
      C++ is a general-purpose programming language that was developed as an enhancement of the C language to include an object-oriented paradigm. It is an imperative and compiled language. C++ has a number of features, including: Object-Oriented ProgrammingMachine IndependentSimpleHigh-Level LanguagePopu
      6 min read

    • History of C++
      The C++ language is an object-oriented programming language & is a combination of both low-level & high-level language - a Middle-Level Language. The programming language was created, designed & developed by a Danish Computer Scientist - Bjarne Stroustrup at Bell Telephone Laboratories (
      7 min read

    • Interesting Facts about C++
      C++ is a general-purpose, object-oriented programming language. It supports generic programming and low-level memory manipulation. Bjarne Stroustrup (Bell Labs) in 1979, introduced the C-With-Classes, and in 1983 with the C++. Here are some awesome facts about C++ that may interest you: The name of
      2 min read

    • Setting up C++ Development Environment
      C++ is a general-purpose programming language and is widely used nowadays for competitive programming. It has imperative, object-oriented, and generic programming features. C++ runs on lots of platforms like Windows, Linux, Unix, Mac, etc. Before we start programming with C++. We will need an enviro
      8 min read

    • Difference between C and C++
      C++ is often viewed as a superset of C. C++ is also known as a "C with class" This was very nearly true when C++ was originally created, but the two languages have evolved over time with C picking up a number of features that either weren't found in the contemporary version of C++ or still haven't m
      3 min read

    C++ Basics

    • Writing First C++ Program - Hello World Example
      The "Hello World" program is the first step towards learning any programming language and is also one of the most straightforward programs you will learn. It is the basic program that demonstrates the working of the coding process. All you have to do is display the message "Hello World" on the outpu
      4 min read

    • C++ Basic Syntax
      Syntax refers to the rules and regulations for writing statements in a programming language. They can also be viewed as the grammatical rules defining the structure of a programming language. The C++ language also has its syntax for the functionalities it provides. Different statements have differen
      4 min read

    • C++ Comments
      Comments in C++ are meant to explain the code as well as to make it more readable. Their purpose is to provide information about code lines. When testing alternative code, they can also be used to prevent execution of some part of the code. Programmers commonly use comments to document their work. E
      3 min read

    • Tokens in C
      In C programming, tokens are the smallest units in a program that have meaningful representations. Tokens are the building blocks of a C program, and they are recognized by the C compiler to form valid expressions and statements. Tokens can be classified into various categories, each with specific r
      4 min read

    • C++ Keywords
      Keywords are the reserved words that have special meanings in the C++ language. They are the words that have special meaning in the language. C++ uses keywords for a specifying the components of the language, such as void, int, public, etc. They can't be used for a variable name, function name or an
      2 min read

    • Difference between Keyword and Identifier in C
      In C, keywords and identifiers are basically the fundamental parts of the language used. Identifiers are the names that can be given to a variable, function or other entity while keywords are the reserved words that have predefined meaning in the language. The below table illustrates the primary dif
      3 min read

    C++ Variables and Constants

    • C++ Variables
      In C++, variable is a name given to a memory location. It is the basic unit of storage in a program. The value stored in a variable can be accessed or changed during program execution. Creating a VariableCreating a variable and giving it a name is called variable definition (sometimes called variabl
      5 min read

    • Constants in C
      In C programming, constants are read-only values that cannot be modified during the execution of a program. These constants can be of various types, such as integer, floating-point, string, or character constants. They are initialized with the declaration and remain same till the end of the program.
      3 min read

    • Scope of Variables in C++
      In C++, the scope of a variable is the extent in the code upto which the variable can be accessed or worked with. It is the region of the program where the variable is accessible using the name it was declared with. Let's take a look at an example: [GFGTABS] C++ #include <iostream> using names
      7 min read

    • Storage Classes in C++ with Examples
      C++ Storage Classes are used to describe the characteristics of a variable/function. It determines the lifetime, visibility, default value, and storage location which helps us to trace the existence of a particular variable during the runtime of a program. Storage class specifiers are used to specif
      7 min read

    • Static Keyword in C++
      The static keyword in C++ has different meanings when used with different types. In this article, we will learn about the static keyword in C++ along with its various uses. In C++, a static keyword can be used in the following context: Table of Content Static Variables in a FunctionStatic Member Var
      5 min read

    C++ Data Types and Literals

    • C++ Data Types
      Data types specify the type of data that a variable can store. Whenever a variable is defined in C++, the compiler allocates some memory for that variable based on the data type with which it is declared as every data type requires a different amount of memory. C++ supports a wide variety of data ty
      8 min read

    • Literals in C
      In C, Literals are the constant values that are assigned to the variables. Literals represent fixed values that cannot be modified. Literals contain memory but they do not have references as variables. Generally, both terms, constants, and literals are used interchangeably. For example, “const int =
      4 min read

    • Derived Data Types in C++
      The data types that are derived from the primitive or built-in datatypes are referred to as Derived Data Types. They are generally the data types that are created from the primitive data types and provide some additional functionality. In C++, there are four different derived data types: Table of Co
      4 min read

    • User Defined Data Types in C++
      User defined data types are those data types that are defined by the user himself. In C++, these data types allow programmers to extend the basic data types provided and create new types that are more suited to their specific needs. C++ supports 5 user-defined data types: Table of Content ClassStruc
      4 min read

    • Data Type Ranges and Their Macros in C++
      Most of the times, in competitive programming, there is a need to assign the variable, the maximum or minimum value that data type can hold but remembering such a large and precise number comes out to be a difficult job. Therefore, C++ has certain macros to represent these numbers, so that these can
      4 min read

    • C++ Type Modifiers
      In C++, type modifiers are the keywords used to change or give extra meaning to already existing data types. It is added to primitive data types as a prefix to modify their size or range of data they can store. C++ have 4 type modifiers which are as follows: Table of Content signed Modifierunsigned
      4 min read

    • Type Conversion in C++
      Type conversion means converting one type of data to another compatible type such that it doesn't lose its meaning. It is essential for managing different data types in C++. Let's take a look at an example: [GFGTABS] C++ #include <iostream> using namespace std; int main() { // Two variables of
      4 min read

    • Casting Operators in C++
      The casting operators is the modern C++ solution for converting one type of data safely to another type. This process is called typecasting where the type of the data is changed to another type either implicitly (by the compiler) or explicitly (by the programmer). Let's take a look at an example: [G
      5 min read

    C++ Operators

    • Operators in C++
      C++ operators are the symbols that operate on values to perform specific mathematical or logical computations on given values. They are the foundation of any programming language. Example: [GFGTABS] C++ //Driver Code Starts{ #include <iostream> using namespace std; int main() { //Driver Code E
      10 min read

    • C++ Arithmetic Operators
      Arithmetic Operators in C++ are used to perform arithmetic or mathematical operations on the operands (generally numeric values). An operand can be a variable or a value. For example, ‘+’ is used for addition, '-' is used for subtraction, '*' is used for multiplication, etc. Let's take a look at an
      4 min read

    • Unary Operators in C
      In C programming, unary operators are operators that operate on a single operand. These operators are used to perform operations such as negation, incrementing or decrementing a variable, or checking the size of a variable. They provide a way to modify or manipulate the value of a single variable in
      6 min read

    • Bitwise Operators in C
      In C, bitwise operators are used to perform operations directly on the binary representations of numbers. These operators work by manipulating individual bits (0s and 1s) in a number. The following 6 operators are bitwise operators (also known as bit operators as they work at the bit-level). They ar
      6 min read

    • Assignment Operators in C
      In C, assignment operators are used to assign values to variables. The left operand is the variable and the right operand is the value being assigned. The value on the right must match the data type of the variable otherwise, the compiler will raise an error. Let's take a look at an example: [GFGTAB
      5 min read

    • C++ sizeof Operator
      The sizeof operator is a unary compile-time operator used to determine the size of variables, data types, and constants in bytes at compile time. It can also determine the size of classes, structures, and unions. Let's take a look at an example: [GFGTABS] C++ #include <iostream> using namespac
      3 min read

    • Scope Resolution Operator in C++
      In C++, the scope resolution operator (::) is used to access the identifiers such as variable names and function names defined inside some other scope in the current scope. Let's take a look at an example: [GFGTABS] C++ #include <iostream> int main() { // Accessing cout from std namespace usin
      3 min read

    C++ Input/Output

    • Basic Input / Output in C++
      In C++, input and output are performed in the form of a sequence of bytes or more commonly known as streams. Input Stream: If the direction of flow of bytes is from the device (for example, Keyboard) to the main memory then this process is called input.Output Stream: If the direction of flow of byte
      5 min read

    • cin in C++
      In C++, cin is an object of istream class that is used to accept the input from the standard input stream i.e. stdin which is by default associated with keyboard. The extraction operator (>>) is used along with cin to extract the data from the object and insert it to the given variable. Let's
      5 min read

    • cout in C++
      In C++, cout is an object of the ostream class that is used to display output to the standard output device, usually the monitor. It is associated with the standard C output stream stdout. The insertion operator (<<) is used with cout to insert data into the output stream. Let's take a look at
      2 min read

    • Standard Error Stream Object - cerr in C++
      In C++, cerr is the standard error stream used to output the errors. It is an instance of the ostream class and is un-buffered, so it is used when we need to display the error message immediately and does not store the error message to display later. The 'c' in cerr refers to "character" and 'err' m
      3 min read

    • Manipulators in C++
      Manipulators are helping functions that can modify the input or output stream. They can be included in the I/O statement to alter the format parameters of a stream. They are defined inside <iomanip> and some are also defined inside <iostream> header file. For example, if we want to print
      4 min read

    C++ Control Statements

    • Decision Making in C (if , if..else, Nested if, if-else-if )
      In C, programs can choose which part of the code to execute based on some condition. This ability is called decision making and the statements used for it are called conditional statements. These statements evaluate one or more conditions and make the decision whether to execute a block of code or n
      8 min read

    • C++ if Statement
      The C++ if statement is the most simple decision-making statement. It is used to decide whether a certain statement or block of statements will be executed or not executed based on a certain condition. Let's take a look at an example: [GFGTABS] C++ #include <iostream> using namespace std; int
      3 min read

    • C++ if else Statement
      The if statement alone tells us that if a condition is true it will execute a block of statements and if the condition is false, it won’t. But what if we want to do something else if the condition is false. Here comes the C++ if else statement. We can use the else statement with if statement to exec
      4 min read

    • C++ if else if Ladder
      In C++, the if-else-if ladder helps the user decide from among multiple options. The C++ if statements are executed from the top down. As soon as one of the conditions controlling the if is true, the statement associated with that if is executed, and the rest of the C++ else-if ladder is bypassed. I
      3 min read

    • Switch Statement in C++
      In C++, the switch statement is a flow control statement that is used to execute the different blocks of statements based on the value of the given expression. It is an alternative to the long if-else-if ladder which provides an easy way to execute different parts of code based on the value of the e
      6 min read

    • Jump statements in C++
      Jump statements are used to manipulate the flow of the program if some conditions are met. It is used to terminate or continue the loop inside a program or to stop the execution of a function. In C++, there is four jump statement: Table of Content continue Statementbreak Statementreturn Statementgot
      4 min read

    • C++ Loops
      In C++ programming, sometimes there is a need to perform some operation more than once or (say) n number of times. For example, suppose we want to print "Hello World" 5 times. Manually, we have to write cout for the C++ statement 5 times as shown. [GFGTABS] C++ #include <iostream> using namesp
      8 min read

    • for Loop in C++
      In C++, for loop is an entry-controlled loop that is used to execute a block of code repeatedly for the given number of times. It is generally preferred over while and do-while loops in case the number of iterations is known beforehand. Let's take a look at an example: [GFGTABS] C++ #include <bit
      6 min read

    • Range-Based for Loop in C++
      In C++, the range-based for loop introduced in C++ 11 is a version of for loop that is able to iterate over a range. This range can be anything that is iteratable, such as arrays, strings and STL containers. It provides a more readable and concise syntax compared to traditional for loops. Let's take
      3 min read

    • C++ While Loop
      In C++, the while loop is an entry-controlled loop that repeatedly executes a block of code as long as the given condition remains true. Unlike the for loop, while loop is used in situations where we do not know the exact number of iterations of the loop beforehand as the loop execution is terminate
      3 min read

    • C++ do while Loop
      In C++, the do-while loop is an exit-controlled loop that repeatedly executes a block of code at least once and continues executing as long as a given condition remains true. Unlike the while loop, the do-while loop guarantees that the loop body will execute at least once, regardless of whether the
      4 min read

    C++ Functions

    • Functions in C++
      A function is a building block of C++ programs that contains a set of statements which are executed when the functions is called. It can take some input data, performs the given task, and return some result. A function can be called from anywhere in the program and any number of times increasing the
      9 min read

    • return Statement in C++
      In C++, the return statement returns the flow of the execution to the function from where it is called. This statement does not mandatorily need any conditional statements. As soon as the statement is executed, the flow of the program stops immediately and returns the control from where it was calle
      4 min read

    • Parameter Passing Techniques in C
      In C, passing values to a function means providing data to the function when it is called so that the function can use or manipulate that data. Here: Formal Parameters: Variables used in parameter list in a function declaration/definition as placeholders. Also called only parameters.Actual Parameter
      4 min read

    • Difference Between Call by Value and Call by Reference in C
      Functions can be invoked in two ways: Call by Value or Call by Reference. These two ways are generally differentiated by the type of values passed to them as parameters. The following table lists the differences between the call-by-value and call-by-reference methods of parameter passing. Call By Va
      4 min read

    • Default Arguments in C++
      A default argument is a value provided for a parameter in a function declaration that is automatically assigned by the compiler if no value is provided for those parameters in function call. If the value is passed for it, the default value is overwritten by the passed value. Example: [GFGTABS] C++ /
      6 min read

    • Inline Functions in C++
      In C++, inline functions provide a way to optimize the performance of the program by reducing the overhead related to a function call. When a function is specified as inline the whole code of the inline function is inserted or substituted at the point of its call during the compilation instead of us
      6 min read

    • Lambda Expression in C++
      C++ 11 introduced lambda expressions to allow inline functions which can be used for short snippets of code that are not going to be reused. Therefore, they do not require a name. They are mostly used in STL algorithms as callback functions. Example: [GFGTABS] C++ //Driver Code Starts{ #include <
      5 min read

    C++ Pointers and References

    • Pointers and References in C++
      In C++ pointers and references both are mechanisms used to deal with memory, memory address, and data in a program. Pointers are used to store the memory address of another variable whereas references are used to create an alias for an already existing variable. Pointers in C++ Pointers in C++ are a
      5 min read

    • C++ Pointers
      A pointer is a variable that stores the address of another variable. Pointers can be used with any data type, including basic types (e.g., int, char), arrays, and even user-defined types like classes and structures. Create PointerA pointer can be declared in the same way as any other variable but wi
      9 min read

    • Dangling, Void , Null and Wild Pointers in C
      In C programming pointers are used to manipulate memory addresses, to store the address of some variable or memory location. But certain situations and characteristics related to pointers become challenging in terms of memory safety and program behavior these include Dangling (when pointing to deall
      6 min read

    • Applications of Pointers in C
      Pointers in C are variables that are used to store the memory address of another variable. Pointers allow us to efficiently manage the memory and hence optimize our program. In this article, we will discuss some of the major applications of pointers in C. Prerequisite: Pointers in C. C Pointers Appl
      4 min read

    • Understanding nullptr in C++
      Consider the following C++ program that shows problem with NULL (need of nullptr) [GFGTABS] CPP // C++ program to demonstrate problem with NULL #include <bits/stdc++.h> using namespace std; // function with integer argument void fun(int N) { cout << "fun(int)"; return;} // Over
      3 min read

    • References in C++
      In C++, a reference works as an alias for an existing variable, providing an alternative name for it and allowing you to work with the original data directly. Example: [GFGTABS] C++ #include <iostream> using namespace std; int main() { int x = 10; // ref is a reference to x. int& ref = x;
      6 min read

    • Can References Refer to Invalid Location in C++?
      Reference Variables: You can create a second name for a variable in C++, which you can use to read or edit the original data contained in that variable. While this may not sound appealing at first, declaring a reference and assigning it a variable allows you to treat the reference as if it were the
      2 min read

    • Pointers vs References in C++
      Prerequisite: Pointers, References C and C++ support pointers, which is different from most other programming languages such as Java, Python, Ruby, Perl and PHP as they only support references. But interestingly, C++, along with pointers, also supports references. On the surface, both references and
      5 min read

    • Passing By Pointer vs Passing By Reference in C++
      In C++, we can pass parameters to a function either by pointers or by reference. In both cases, we get the same result. So, what is the difference between Passing by Pointer and Passing by Reference in C++? Let's first understand what Passing by Pointer and Passing by Reference in C++ mean: Passing
      5 min read

    • When do we pass arguments by pointer?
      In C, the pass-by pointer method allows users to pass the address of an argument to the function instead of the actual value. This allows programmers to change the actual data from the function and also improve the performance of the program. In C, variables are passed by pointer in the following ca
      5 min read

geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences