Difference Between C And C++ - GeeksforGeeks

Skip to content geeksforgeeks
  • Courses
    • DSA Courses
    • Programming Languages
  • Tutorials
    • Python Tutorial
      • Python Loops and Control Flow
    • Java
      • Java Interview Questions
      • Java Quiz
      • Advance Java
    • Programming Languages
    • System Design
    • Interview Corner
    • Computer Science Subjects
    • DevOps
    • Linux
    • Software Testing
    • Databases
    • Android
    • Excel
    • Mathematics
  • DSA
    • Data Structures
    • Algorithms
      • Analysis of Algorithms
      • Searching Algorithms
      • Sorting Algorithms
    • Practice
      • Company Wise Coding Practice
      • Practice Problems Difficulty Wise
      • Language Wise Coding Practice
      • Curated DSA Lists
    • Company Wise SDE Sheets
    • DSA Cheat Sheets
    • Puzzles
  • Data Science
    • Data Science Packages
    • Data Visualization
    • Data Analysis
  • Web Tech
    • Web Development Using Python
      • Django
      • Flask
    • Cheat Sheets
  • C++ Data Types
  • C++ Input/Output
  • C++ Arrays
  • C++ Pointers
  • C++ OOPs
  • C++ STL
  • C++ Interview Questions
  • C++ Programs
  • C++ Cheatsheet
  • C++ MCQ
  • C++ Projects
  • C++ Exception Handling
  • C++ Memory Management
Open In App Difference between C and C++ Last Updated : 11 Oct, 2024 Summarize Comments Improve Suggest changes Like Article Like Save Share Report Follow

Similarities between C and C++ are:

  • Both the languages have a similar syntax.
  • Code structure of both the languages are same.
  • The compilation of both the languages is similar.
  • They share the same basic syntax. Nearly all of C’s operators and keywords are also present in C++ and do the same thing.
  • C++ has a slightly extended grammar than C, but the basic grammar is the same.
  • Basic memory model of both is very close to the hardware.
  • Same notions of stack, heap, file-scope and static variables are present in both the languages.

Differences between C and C++ are: 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 made it into any version of C++. That said, C++ is still mostly a superset of C adding Object-Oriented Programming, Exception Handling, Templating, and a more extensive standard library.

Below is a table of some of the more obvious and general differences between C and C++. There are many more subtle differences between the languages and between versions of the languages. Understanding the differences between C and C++ is crucial for choosing the right programming language for your projects. The C++ Course covers these differences in detail, helping you make informed decisions.

C C++
C was developed by Dennis Ritchie between the year 1969 and 1973 at AT&T Bell Labs. C++ was developed by Bjarne Stroustrup in 1979.
C does no support polymorphism, encapsulation, and inheritance which means that C does not support object oriented programming. C++ supports polymorphism, encapsulation, and inheritance because it is an object oriented programming language.
C is (mostly) a subset of C++. C++ is (mostly) a superset of C.
Number of keywords in C:* C90: 32* C99: 37* C11: 44* C23: 59 Number of keywords in C++:* C++98: 63* C++11: 73* C++17: 73* C++20: 81
For the development of code, C supports procedural programming. C++ is known as hybrid language because C++ supports both procedural and object oriented programming paradigms.
Data and functions are separated in C because it is a procedural programming language. Data and functions are encapsulated together in form of an object in C++.
C does not support information hiding. Data is hidden by the Encapsulation to ensure that data structures and operators are used as intended.
Built-in data types is supported in C. Built-in & user-defined data types is supported in C++.
C is a function driven language because C is a procedural programming language. C++ is an object driven language because it is an object oriented programming.
Function and operator overloading is not supported in C. Function and operator overloading is supported by C++.
C is a function-driven language. C++ is an object-driven language
Functions in C are not defined inside structures. Functions can be used inside a structure in C++.
Namespace features are not present inside the C. Namespace is used by C++, which avoid name collisions.
Standard IO header is stdio.h. Standard IO header is iostream.h.
Reference variables are not supported by C. Reference variables are supported by C++.
Virtual and friend functions are not supported by C. Virtual and friend functions are supported by C++.
C does not support inheritance. C++ supports inheritance.
Instead of focusing on data, C focuses on method or process. C++ focuses on data instead of focusing on method or procedure.
C provides malloc() and calloc() functions for dynamic memory allocation, and free() for memory de-allocation. C++ provides new operator for memory allocation and delete operator for memory de-allocation.
Direct support for exception handling is not supported by C. Exception handling is supported by C++.
scanf() and printf() functions are used for input/output in C. cin and cout are used for input/output in C++.
C structures don’t have access modifiers. C ++ structures have access modifiers.
There is no strict type checking in C programming language. Strict type checking in done in C++. So many programs that run well in C compiler will result in many warnings and errors under C++ compiler.
C does not support overloading C++ does support overloading
Type punning with unions is allows (C99 and later) Type punning with unions is undefined behavior (except in very specific circumstances)
Named initializers may appear out of order Named initializers must match the data layout of the struct
File extension is “.c” File extension is “.cpp” or “.c++” or “.cc” or “.cxx”
Meta-programming: macros + _Generic() Meta-programming: templates (macros are still supported but discouraged)
There are 32 keywords in the C There are 97 keywords in the C++

V

vartika02 Follow Improve Previous Article Setting up C++ Development Environment Next Article Writing First C++ Program - Hello World Example

Similar Reads

  • C++ Programming Language C++ is a programming language that is the foundation of many modern technologies like game engines, web browsers, operating systems financial systems, etc. Bjarne Stroustrup developed it as an extension of the C language. C++ is generally used to create high-performance applications and provides bet 9 min read
  • C++ Overview

    • Introduction to C++ Programming Language C++ is a general-purpose programming language that was developed as an enhancement of the C language to include object-oriented paradigm. It is an imperative and a compiled language. C++ is a high-level, general-purpose programming language designed for system and application programming. It was dev 7 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++ Similarities between C and C++ are: Both the languages have a similar syntax.Code structure of both the languages are same.The compilation of both the languages is similar.They share the same basic syntax. Nearly all of C's operators and keywords are also present in C++ and do the same thing.C++ has 4 min read

    C++ Basics

    • Writing First C++ Program - Hello World Example C++ is a widely used Object Oriented Programming language and is relatively easy to understand. 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. The Hello World Program in C++ is the basic progr 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. L 3 min read
    • Tokens in C A token in C can be defined as the smallest individual element of the C programming language that is meaningful to the compiler. It is the basic component of a C program. Types of Tokens in CThe tokens of C language can be classified into six types based on the functions they are used to perform. Th 5 min read
    • C++ Keywords C++ is a powerful language. In C++, we can write structured programs and object-oriented programs also. C++ is a superset of C and therefore most constructs of C are legal in C++ with their meaning unchanged. However, there are some exceptions and additions. TokenWhen the compiler is processing the 6 min read
    • Difference between Keyword and Identifier in C Keywords: Keywords are specific reserved words in C each of which has a specific feature associated with it. Almost all of the words which help us use the functionality of the C language are included in the list of keywords. So you can imagine that the list of keywords is not going to be a small one 2 min read

    C++ Variables and Constants

    • C++ Variables Variables in C++ 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 changed during program execution.A variable is only a name given to a memory location, all the operations done on the variable effects that memory location.In C+ 5 min read
    • Constants in C The constants in C are the read-only variables whose values cannot be modified once they are declared in the C program. The type of constant can be an integer constant, a floating pointer constant, a string constant, or a character constant. In C language, the const keyword is used to define the con 6 min read
    • Scope of Variables in C++ In general, the scope is defined as the extent up to which something can be worked with. In programming also the scope of a variable is defined as the extent of the program code within which the variable can be accessed or declared or worked with. There are mainly two types of variable scopes: Local 5 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 8 min read
    • Static Keyword in C++ Prerequisite: Static variables in C The static keyword has different meanings when used with different types. We can use static keywords with: Static Variables: Variables in a function, Variables in a classStatic Members of Class: Class objects and Functions in a class. Let us now look at each one o 5 min read

    C++ Data Types and Literals

    • C++ Data Types All variables use data type during declaration to restrict the type of data to be stored. Therefore, we can say that data types are used to tell the variables the type of data they can store. Whenever a variable is defined in C++, the compiler allocates some memory for that variable based on the dat 11 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++ Data types are means to identify the type of data and associated operations of handling it. There are three types of data types: Pre-defined Data TypesDerived Data TypesUser-defined Data Types In this article, the Derived Data Type is explained: Derived Data Types in C++The data types that are deriv 5 min read
    • User Defined Data Types in C++ Data types are means to identify the type of data and associated operations of handling it. improve. In C++ datatypes are used to declare the variable. There are three types of data types: Pre-defined DataTypesDerived Data TypesUser-defined DataTypes In this article, the User-Defined DataType is exp 5 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 ca 3 min read
    • C++ Type Modifiers Modifiers are used in C++ to change or give extra meaning to already existing data types. It's added to primitive data types as a prefix to change their meaning. A modifier is used to change the meaning of a basic type so that it better matches the requirements of different circumstances. Following 6 min read
    • Type Conversion in C++ Type conversion is essential for managing different data types in C++. The C++ Course covers the various methods of type conversion, helping you understand how to handle data types correctly. A type cast is basically a conversion from one type to another. There are two types of type conversion: Impl 3 min read
    • Casting Operators in C++ Casting operators are used for type casting in C++. They are used to convert one data type to another. C++ supports four types of casts: static_castdynamic_castconst_castreinterpret_cast1. static_castThe static_cast operator is the most commonly used casting operator in C++. It performs compile-time 5 min read

    C++ Operators

    • Operators in C++ An operator is a symbol that operates on a value to perform specific mathematical or logical computations. They form the foundation of any programming language. In C++, we have built-in operators to provide the required functionality. An operator operates the operands. For example,  int c = a + b;He 13 min read
    • C++ Arithmetic Operators Arithmetic Operators in C++ are used to perform arithmetic or mathematical operations on the operands. For example, ‘+’ is used for addition, ‘-‘ is used for subtraction, ‘*’ is used for multiplication, etc. In simple terms, arithmetic operators are used to perform arithmetic operations on variables 3 min read
    • Unary operators in C Unary operators are the operators that perform operations on a single operand to produce a new value. Types of unary operatorsTypes of unary operators are mentioned below: Unary minus ( - )Increment ( ++ )Decrement ( -- )NOT ( ! )Addressof operator ( & )sizeof()1. Unary MinusThe minus operator ( 5 min read
    • Bitwise Operators in C In C, the following 6 operators are bitwise operators (also known as bit operators as they work at the bit-level). They are used to perform bitwise operations in C. The & (bitwise AND) in C takes two numbers as operands and does AND on every bit of two numbers. The result of AND is 1 only if bot 7 min read
    • Assignment Operators in C Assignment operators are used for assigning value to a variable. The left side operand of the assignment operator is a variable and right side operand of the assignment operator is a value. The value on the right side must be of the same data-type of the variable on the left side otherwise the compi 3 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. Syntax: sizeof (data type)or sizeof (expression) Example 1: Number of bytes taken by di 6 min read
    • Scope resolution operator in C++ In C++, the scope resolution operator is ::. It is used for the following purposes. 1) To access a global variable when there is a local variable with same name: [GFGTABS] CPP // C++ program to show that we can access a global variable // using scope resolution operator :: when there is a local // v 5 min read

    C++ Input/Output

    • Basic Input / Output in C++ C++ comes with libraries that provide us with many ways for performing input and output. 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 m 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. Syntax 4 min read
    • cout in C++ The cout object in C++ is an object of class iostream. It is defined in iostream header file. It is used to display the output to the standard output device i.e. monitor. It is associated with the standard C output stream stdout. The data needed to be displayed on the screen is inserted in the stand 3 min read
    • cerr - Standard Error Stream Object in C++ Standard output stream(cout): cout is the instance of the ostream class. cout is used to produce output on the standard output device which is usually the display screen. The data needed to be displayed on the screen is inserted in the standard output stream(cout) using the insertion operator(< 2 min read
    • Manipulators in C++ with Examples Manipulators are helping functions that can modify the input/output stream. It does not mean that we change the value of a variable, it only modifies the I/O stream using insertion (<<) and extraction (>>) operators. Manipulators are special functions that can be included in the I/O stat 6 min read

    C++ Control Statements

    • Decision Making in C (if , if..else, Nested if, if-else-if ) The conditional statements (also known as decision control structures) such as if, if else, switch, etc. are used for decision-making purposes in C programs. They are also known as Decision-Making Statements and are used to evaluate one or more conditions and make the decision whether to execute a s 11 min read
    • C++ if Statement Decision-making in C++ helps to write decision-driven statements and execute a particular set of code based on certain conditions. 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 execut 2 min read
    • C++ if else Statement Decision Making in C++ helps to write decision-driven statements and execute a particular set of code based on certain conditions. 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 somet 2 min read
    • C++ if else if Ladder Decision-making in C++ helps to write decision-driven statements and execute a particular set of code based on certain conditions. 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 c 3 min read
    • Switch Statement in C++ The C++ Switch case statement evaluates a given expression and based on the evaluated value(matching a certain condition), it executes the statements associated with it. It is an alternative to the long if-else-if ladder which provides an easy way to dispatch execution to different parts of code bas 9 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. Types of Jump Statements in C++ In C++, there is four jump statement breakcontinuegotoreturncontinue in C++ 5 min read
    • C++ Loops In Programming, sometimes there is a need to perform some operation more than once or (say) n number of times. Loops come into use when we need to repeatedly execute a block of statements.  For example: Suppose we want to print "Hello World" 10 times. This can be done in two ways as shown below:  Ma 13 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 specified range of values. Basically, for loop allows you to repeat a set of instructions for a specific number of iterations. for loop is generally preferred over while and do-while loops in case 9 min read
    • Range-based for loop in C++ Range-based for loop in C++ has been added since C++ 11. It executes a for loop over a range. Used as a more readable equivalent to the traditional for loop operating over a range of values, such as all elements in a container. for ( range_declaration : range_expression ) loop_statementParameters :r 3 min read
    • C++ While Loop While Loop in C++ is used in situations where we do not know the exact number of iterations of the loop beforehand. The loop execution is terminated on the basis of the test condition. Loops in C++ come into use when we need to repeatedly execute a block of statements. During the study of the 'for' 3 min read
    • C++ Do/While Loop Loops come into use when we need to repeatedly execute a block of statements. Like while the do-while loop execution is also terminated on the basis of a test condition. The main difference between a do-while loop and a while loop is in the do-while loop the condition is tested at the end of the loo 3 min read

    C++ Functions

    • Functions in C++ A function is a set of statements that takes input, does some specific computation, and produces output. The idea is to put some commonly or repeatedly done tasks together to make a function so that instead of writing the same code again and again for different inputs, we can call this function.In s 15+ min read
    • return statement in C++ with Examples Pre-requisite: Functions 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 4 min read
    • Parameter Passing Techniques in C In C, there are different ways in which parameter data can be passed into and out of methods and functions. Let us assume that a function B() is called from another function A(). In this case, A is called the "caller function" and B is called the "called function or callee function". Also, the argum 5 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 parameters passed to the function are called actual parameters whereas the parameters received by the function are called form 5 min read
    • Default Arguments in C++ A default argument is a value provided in a function declaration that is automatically assigned by the compiler if the calling function doesn't provide a value for the argument. In case any value is passed, the default value is overridden. 1) The following is a simple C++ example to demonstrate the 5 min read
    • Inline Functions in C++ C++ provides inline functions to reduce the function call overhead. An inline function is a function that is expanded in line when it is called. When the inline function is called whole code of the inline function gets inserted or substituted at the point of the inline function call. This substituti 9 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 and therefore do not require a name. In their simplest form a lambda expression can be defined as follows: [ capture clause ] (parameters) -> return-type { d 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 Pointers are symbolic representations of addresses. They enable programs to simulate call-by-reference as well as to create and manipulate dynamic data structures. Iterating over elements in arrays or other data structures is one of the main use of pointers. The address of the variable you're workin 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++ When a variable is declared as a reference, it becomes an alternative name for an existing variable. A variable can be declared as a reference by putting ‘&’ in the declaration. Also, we can define a reference variable as a type of variable that can act as a reference to another variable. '& 9 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

    C++ Arrays

    • Variable Length Arrays (VLAs) in C In C, variable length arrays (VLAs) are also known as runtime-sized or variable-sized arrays. The size of such arrays is defined at run-time. Variably modified types include variable-length arrays and pointers to variable-length arrays. Variably changed types must be declared at either block scope o 2 min read
    • Pointer to an Array | Array Pointer Prerequisite: Pointers Introduction Consider the following program: [GFGTABS] C #include<stdio.h> int main() { int arr[5] = { 1, 2, 3, 4, 5 }; int *ptr = arr; printf("%p\n", ptr); return 0; } [/GFGTABS]In the above program, we have a pointer ptr that points to the 0th element of the 9 min read
    • How to print size of array parameter in C++? How to compute the size of an array CPP? C/C++ Code // A C++ program to show that it is wrong to  // compute size of an array parameter in a function #include <iostream> using namespace std; void findSize(int arr[]) { cout << sizeof(arr) << endl; } int main() { int a[10]; cout < 3 min read
    • Pass Array to Functions in C In C, the whole array cannot be passed as an argument to a function. However, you can pass a pointer to an array without an index by specifying the array's name. Arrays in C are always passed to the function as pointers pointing to the first element of the array. SyntaxIn C, we have three ways to pa 6 min read
    • What is Array Decay in C++? How can it be prevented? What is Array Decay? The loss of type and dimensions of an array is known as decay of an array. This generally occurs when we pass the array into function by value or pointer. What it does is, it sends first address to the array which is a pointer, hence the size of array is not the original one, bu 3 min read

    C++ Strings

    • Strings in C++ C++ strings are sequences of characters stored in a char array. Strings are used to store words and text. They are also used to store data, such as numbers and other types of information. Strings in C++ can be defined either using the std::string class or the C-style character arrays. 1. C Style Str 11 min read
    • std::string class in C++ C++ has in its definition a way to represent a sequence of characters as an object of the class. This class is called std:: string. The string class stores the characters as a sequence of bytes with the functionality of allowing access to the single-byte character. String vs Character ArrayString Ch 8 min read
    • Array of Strings in C++ - 5 Different Ways to Create In C++, a string is usually just an array of (or a reference/points to) characters that ends with the NULL character '\0'. A string is a 1-dimensional array of characters, and an array of strings is a 2-dimensional array of characters where each row contains some string. In this article, we will dis 6 min read
    • String Concatenation in C++ String concatenation refers to the process of combining two or more strings into a single string. Generally, one string is appended at the end of the other string. In this article, we will learn how to concatenate two strings in C++. Examples Input: str1 = "Hello" , str2 = " World"Output: Hello Worl 4 min read
    • Tokenizing a string in C++ Tokenizing a string denotes splitting a string with respect to some delimiter(s). There are many ways to tokenize a string. The C++ Course covers methods for tokenizing strings effectively, helping you manipulate and analyze text data in your applications. In this article four of them are explained: 4 min read
    • Substring in C++ The substring function is used for handling string operations like strcat(), append(), etc. It generates a new string with its value initialized to a copy of a sub-string of this object. In C++, the header file which is required for std::substr(), string functions is <string>. The substring fu 8 min read

    C++ Structures and Unions

    • Structures, Unions and Enumerations in C++ In this article, we will discuss structures, unions, and enumerations and their differences. The structure is a user-defined data type that is available in C++.Structures are used to combine different types of data types, just like an array is used to combine the same type of data types.A structure 5 min read
    • Structures in C++ We often come around situations where we need to store a group of data whether of similar data types or non-similar data types. We have seen Arrays in C++ which are used to store set of data of similar data types at contiguous memory locations.Unlike Arrays, Structures in C++ are user defined data t 5 min read
    • C++ - Pointer to Structure Pointer to structure in C++ can also be referred to as Structure Pointer. A structure Pointer in C++ is defined as the pointer which points to the address of the memory block that stores a structure. Below is an example of the same: Syntax: struct name_of_structure *ptr; // Initialization of structu 2 min read
    • Self Referential Structures Self Referential structures are those structures that have one or more pointers which point to the same type of structure, as their member. In other words, structures pointing to the same type of structures are self-referential in nature Example:  [GFGTABS] CPP struct node { int data1; char data2; s 8 min read
    • Difference Between C Structures and C++ Structures Let's discuss, what are the differences between structures in C and structures in C++? In C++, structures are similar to classes. Differences Between the C and C++ StructuresC Structures C++ Structures Only data members are allowed, it cannot have member functions.Can hold both: member functions and 6 min read
    • Enumeration in C++ Enumeration (Enumerated type) is a user-defined data type that can be assigned some limited values. These values are defined by the programmer at the time of declaring the enumerated type. If we assign a float value to a character value, then the compiler generates an error. In the same way, if we t 3 min read
    • typedef in C++ typedef keyword in C++ is used for aliasing existing data types, user-defined data types, and pointers to a more meaningful name. Typedefs allow you to give descriptive names to standard data types, which can also help you self-document your code. Mostly typedefs are used for aliasing, only if the p 6 min read
    • Array of Structures vs Array within a Structure in C Both Array of Structures and Array within a Structure in C programming is a combination of arrays and structures but both are used to serve different purposes. Array within a StructureA structure is a data type in C that allows a group of related variables to be treated as a single unit instead of s 5 min read

    C++ Dynamic Memory Management

    • Dynamic Memory Allocation in C using malloc(), calloc(), free() and realloc() Since C is a structured language, it has some fixed rules for programming. One of them includes changing the size of an array. An array is a collection of items stored at contiguous memory locations. As can be seen, the length (size) of the array above is 9. But what if there is a requirement to cha 9 min read
    • new and delete Operators in C++ For Dynamic Memory Dynamic memory allocation in C/C++ refers to performing memory allocation manually by a programmer. Dynamically allocated memory is allocated on Heap, and non-static and local variables get memory allocated on Stack (Refer to Memory Layout C Programs for details). What are applications? One use of d 6 min read
    • new vs malloc() and free() vs delete in C++ We use new and delete operators in C++ to dynamically allocate memory whereas malloc() and free() functions are also used for the same purpose in C and C++. The functionality of the new or malloc() and delete or free() seems to be the same but they differ in various ways.The behavior with respect to 5 min read
    • What is Memory Leak? How can we avoid? A memory leak occurs when programmers create a memory in a heap and forget to delete it. The consequence of the memory leak is that it reduces the performance of the computer by reducing the amount of available memory. Eventually, in the worst case, too much of the available memory may become alloca 3 min read
    • Difference between Static and Dynamic Memory Allocation in C Memory Allocation: Memory allocation is a process by which computer programs and services are assigned with physical or virtual memory space. The memory allocation is done either before or at the time of program execution. There are two types of memory allocations: Compile-time or Static Memory Allo 3 min read

    C++ Object-Oriented Programming

    • Object Oriented Programming in C++ Object-oriented programming - As the name suggests uses objects in programming. Object-oriented programming aims to implement real-world entities like inheritance, hiding, polymorphism, etc. in programming. The main aim of OOP is to bind together the data and the functions that operate on them so th 10 min read
    • C++ Classes and Objects In C++, classes and objects are the basic building block that leads to Object-Oriented programming in C++. In this article, we will learn about C++ classes, objects, look at how they work and how to implement them in our C++ program. What is a Class in C++?A class is a user-defined data type, which 10 min read
    • Access Modifiers in C++ Access modifiers are used to implement an important aspect of Object-Oriented Programming known as Data Hiding. Consider a real-life example: The Research and Analysis Wing (R&AW), having 10 core members, has come into possession of sensitive confidential information regarding national security. 6 min read
    • Friend Class and Function in C++ A friend class can access private and protected members of other classes in which it is declared as a friend. It is sometimes useful to allow a particular class to access private and protected members of other classes. For example, a LinkedList class may be allowed to access private members of Node. 6 min read
    • Constructors in C++ Constructor in C++ is a special method that is invoked automatically at the time an object of a class is created. It is used to initialize the data members of new objects generally. The constructor in C++ has the same name as the class or structure. It constructs the values i.e. provides data for th 7 min read
    • Default Constructors in C++ A default constructor is a constructor that either takes no arguments or has default values for all its parameters. It is also referred to as a zero-argument constructor when it explicitly accepts no arguments. If a default constructor is not explicitly defined by the programmer in the source code, 4 min read
    • Copy Constructor in C++ A copy constructor is a type of constructor that initializes an object using another object of the same class. In simple terms, a constructor which creates an object by initializing it with an object of the same class, which has been created previously is known as a copy constructor. The process of 7 min read
    • Destructors in C++ Destructor is an instance member function that is invoked automatically whenever an object is going to be destroyed. Meaning, a destructor is the last function that is going to be called before an object is destroyed. In this article, we will learn about the destructors in C++, how they work, how an 5 min read
    • Private Destructor in C++ Destructors with the access modifier as private are known as Private Destructors. Whenever we want to prevent the destruction of an object, we can make the destructor private. What is the use of private destructor? Whenever we want to control the destruction of objects of a class, we make the destru 4 min read
    • When is a Copy Constructor Called in C++? A copy constructor is a member function that initializes an object using another object of the same class. The Copy constructor is called mainly when a new object is created from an existing object, as a copy of the existing object. In C++, a Copy Constructor may be called for the following cases: 1 2 min read
    • Shallow Copy and Deep Copy in C++ In general, creating a copy of an object means to create an exact replica of the object having the same literal value, data type, and resources. There are two ways that are used by C++ compiler to create a copy of objects. Copy ConstructorAssignment Operator// Copy ConstructorGeeks Obj1(Obj);orGeeks 6 min read
    • When Should We Write Our Own Copy Constructor in C++? A copy constructor is a member function that initializes an object using another object of the same class. (See this article for reference). When should we write our own copy constructor?C++ compiler provides a default copy constructor (and assignment operator) with class. When we don't provide an i 2 min read
    • Does C++ compiler create default constructor when we write our own? No, the C++ compiler doesn't create a default constructor when we define any type of constructor manually in the class. ExplanationThe default constructor is used to create an object's instance without any arguments. In C++, the compiler implicitly creates a default constructor for every class which 2 min read
    • C++ Static Data Members Static data members are class members that are declared using static keywords. A static member has certain special characteristics which are as follows: Only one copy of that member is created for the entire class and is shared by all the objects of that class, no matter how many objects are created 6 min read
    • Static Member Function in C++ The static keyword is used with a variable to make the memory of the variable static once a static variable is declared its memory can't be changed. To know more about static keywords refer to the article static Keyword in C++. Static Member in C++ Static members of a class are not associated with t 4 min read
    • 'this' pointer in C++ In C++, 'this' pointers is a pointer to the current instance of a class. It is used to refer to the object within its own member functions. In this article, we will learn how to use 'this' pointer in C++. Let's take a look at an example: [GFGTABS] C++ #include <iostream> using namespace std; / 6 min read
    • Scope Resolution Operator vs this pointer in C++ Scope resolution operator is for accessing static or class members and this pointer is for accessing object members when there is a local variable with the same name. Consider below C++ program: C/C++ Code // C++ program to show that local parameters hide // class members #include <iostream> u 3 min read
    • Local Classes in C++ A class declared inside a function becomes local to that function and is called Local Class in C++. A local class name can only be used locally i.e., inside the function and not outside it.The methods of a local class must be defined inside it only.A local class can have static functions but, not st 6 min read
    • Nested Classes in C++ A nested class is a class which is declared in another enclosing class. A nested class is a member and as such has the same access rights as any other member. The members of an enclosing class have no special access to members of a nested class; the usual access rules shall be obeyed. For example, p 1 min read
    • Enum Classes in C++ and Their Advantage over Enum DataType Enums, or enumerated types, are user-defined data types in C++ that allow the programmer to define a set of named values. These values are fixed and predetermined at the time of declaration. However, traditional enums have some limitations, which have been addressed by the introduction of Enum Class 5 min read
    • Difference Between Structure and Class in C++ In C++, a structure works the same way as a class, except for just two small differences. The most important of them is hiding implementation details. A structure will by default not hide its implementation details from whoever uses it in code, while a class by default hides all its implementation d 3 min read
    • Why C++ is partially Object Oriented Language? The basic thing which are the essential feature of an object oriented programming are Inheritance, Polymorphism and Encapsulation. Any programming language that supports these feature completely are complete Object-oriented programming language whereas any language that supports all three feature bu 3 min read

    C++ Encapsulation and Abstraction

    • Encapsulation in C++ Encapsulation in C++ is defined as the wrapping up of data and information in a single unit. In Object Oriented Programming, Encapsulation is defined as binding together the data and the functions that manipulate them. Consider a real-life example of encapsulation, in a company, there are different 5 min read
    • Abstraction in C++ Data abstraction is one of the most essential and important features of object-oriented programming in C++. Abstraction means displaying only essential information and ignoring the details. Data abstraction refers to providing only essential information about the data to the outside world, ignoring 4 min read
    • Difference between Abstraction and Encapsulation in C++ Abstraction: In OOPs, Abstraction is the method of getting information where the information needed will be taken in such a simplest way that solely the required components are extracted, and also the ones that are considered less significant are unnoticed. The concept of abstraction only shows nece 3 min read

    C++ Polymorphism

    • C++ Polymorphism The word "polymorphism" means having many forms. In simple words, we can define polymorphism as the ability of a message to be displayed in more than one form. A real-life example of polymorphism is a person who at the same time can have different characteristics. A man at the same time is a father, 7 min read
    • Function Overriding in C++ A function is a block of statements that together performs a specific task by taking some input and producing a particular output. Function overriding in C++ is termed as the redefinition of base class function in its derived class with the same signature i.e. return type and parameters. It can be o 7 min read
    • Virtual Functions and Runtime Polymorphism in C++ A virtual function is a member function that is declared in the base class using the keyword virtual and is re-defined (Overridden) in the derived class. It tells the compiler to perform late binding where the compiler matches the object with the right called function and executes it during the runt 8 min read
    • Difference between Inheritance and Polymorphism Inheritance is one in which a new class is created that inherits the properties of the already exist class. It supports the concept of code reusability and reduces the length of the code in object-oriented programming. Types of Inheritance are:Single inheritanceMulti-level inheritanceMultiple inheri 5 min read

    C++ Function Overloading

    • Function Overloading in C++ Function overloading is a feature of object-oriented programming where two or more functions can have the same name but different parameters. When a function name is overloaded with different jobs it is called Function Overloading. In Function Overloading “Function” name should be the same and the a 4 min read
    • Constructor Overloading in C++ Prerequisites: Constructors in C++ In C++, We can have more than one constructor in a class with same name, as long as each has a different list of arguments.This concept is known as Constructor Overloading and is quite similar to function overloading. Overloaded constructors essentially have the sa 2 min read
    • Functions that cannot be overloaded in C++ In C++, following function declarations cannot be overloaded. 1) Function declarations that differ only in the return type. For example, the following program fails in compilation. C/C++ Code #include&lt;iostream&gt; int foo() { return 10; } char foo() { return 'a'; } int main() { char x = f 3 min read
    • Function overloading and const keyword Function overloading is a feature of object-oriented programming where two or more functions can have the same name but different parameters. When a function name is overloaded with different jobs it is called Function Overloading. In Function Overloading “Function” name should be the same and the a 5 min read
    • Function Overloading and Return Type in C++ Function overloading is possible in C++ and Java but only if the functions must differ from each other by the types and the number of arguments in the argument list. However, functions can not be overloaded if they differ only in the return type. Why is Function overloading not possible with differe 2 min read
    • Function Overloading and float in C++ Although polymorphism is a widely useful phenomena in C++ yet it can be quite complicated at times. For instance consider the following code snippet: C/C++ Code #include&lt;iostream&gt; using namespace std; void test(float s,float t) { cout &lt;&lt; &quot;Function with float call 2 min read
    • Can main() be overloaded in C++? Predict the output of following C++ program. #include <iostream> using namespace std; int main(int a) { cout << a << "\n"; return 0; } int main(char *a) { cout << a << endl; return 0; } int main(int a, int b) { cout << a << " " << b 2 min read
    • Function Overloading vs Function Overriding in C++ Function Overloading (achieved at compile time) Function Overloading provides multiple definitions of the function by changing signature i.e. changing number of parameters, change datatype of parameters, return type doesn’t play any role. It can be done in base as well as derived class.Example: void 3 min read
    • Advantages and Disadvantages of Function Overloading in C++ Function overloading is one of the important features of object-oriented programming. It allows users to have more than one function having the same name but different properties. Overloaded functions enable users to supply different semantics for a function, depending on the signature of functions. 3 min read

    C++ Operator Overloading

    • Operator Overloading in C++ in C++, Operator overloading is a compile-time polymorphism. It is an idea of giving special meaning to an existing operator in C++ without changing its original meaning. In this article, we will further discuss about operator overloading in C++ with examples and see which operators we can or cannot 9 min read
    • Types of Operator Overloading in C++ C++ provides a special function to change the current functionality of some operators within its class which is often called as operator overloading. Operator Overloading is the method by which we can change some specific operators' functions to do different tasks. Syntax: Return_Type classname :: o 4 min read
    • Functors in C++ Please note that the title is Functors (Not Functions)!! Consider a function that takes only one argument. However, while calling this function we have a lot more information that we would like to pass to this function, but we cannot as it accepts only one parameter. What can be done? One obvious an 3 min read
    • What are the Operators that Can be and Cannot be Overloaded in C++? There are various ways to overload Operators in C++ by implementing any of the following types of functions: 1) Member Function 2) Non-Member Function 3) Friend Function List of operators that can be overloaded are: + - * ? % ? & | ~ ! = < > += -= *= ?= %= ?= &= |= << >> 4 min read

    C++ Inheritance

    • Inheritance in C++ The capability of a class to derive properties and characteristics from another class is called Inheritance. Inheritance is one of the most important features of Object Oriented Programming in C++. In this article, we will learn about inheritance in C++, its modes and types along with the informatio 15+ min read
    • C++ Inheritance Access Prerequisites: Class-Object in C++Inheritance in C++Before learning about Inheritance Access we need to know about access specifiers. There are three Access specifiers in C++. These are: public - members are accessible from outside the class, and members can be accessed from anywhere.private - membe 4 min read
    • Multiple Inheritance in C++ Multiple Inheritance is a feature of C++ where a class can inherit from more than one classes. The constructors of inherited classes are called in the same order in which they are inherited. For example, in the following program, B's constructor is called before A's constructor. A class can be deriv 5 min read
    • C++ Hierarchical Inheritance Inheritance is a feature of Object-Oriented-programming in which a derived class (child class) inherits the property (data member and member functions) of the Base class (parent class). For example, a child inherits the traits of their parents. In Hierarchical inheritance, more than one sub-class in 4 min read
    • C++ Multilevel Inheritance Multilevel Inheritance in C++ is the process of deriving a class from another derived class. When one class inherits another class it is further inherited by another class. It is known as multi-level inheritance. For example, if we take Grandfather as a base class then Father is the derived class th 2 min read
    • Constructor in Multiple Inheritance in C++ Constructor is a class member function with the same name as the class. The main job of the constructor is to allocate memory for class objects. Constructor is automatically called when the object is created. Multiple Inheritance: Multiple Inheritance is a feature of C++ where a class can derive fro 2 min read
    • Inheritance and Friendship in C++ Inheritance in C++: This is an OOPS concept. It allows creating classes that are derived from other classes so that they automatically include some of the functionality of its base class and some functionality of its own. (See this article for reference) Friendship in C++: Usually, private and prote 2 min read
    • Does overloading work with Inheritance? If we have a function in base class and another function with the same name in derived class, can the base class function be called from derived class object? This is an interesting question and as an experiment, predict the output of the following C++ program: [GFGTABS] C++ #include <iostream 5 min read
    • Difference between Inheritance and Polymorphism Inheritance is one in which a new class is created that inherits the properties of the already exist class. It supports the concept of code reusability and reduces the length of the code in object-oriented programming. Types of Inheritance are:Single inheritanceMulti-level inheritanceMultiple inheri 5 min read

    C++ Virtual Functions

    • Virtual Function in C++ A virtual function (also known as virtual methods) is a member function that is declared within a base class and is re-defined (overridden) by a derived class. When you refer to a derived class object using a pointer or a reference to the base class, you can call a virtual function for that object a 6 min read
    • Virtual Functions in Derived Classes in C++ A virtual function is a member function of a base class that is overridden by a derived class. When you use a pointer or a reference to the base class to refer to a derived class object, you can call a virtual function for that object and have it run the derived class's version of the function. In C 2 min read
    • Default Arguments and Virtual Function in C++ Default Arguments are the values provided during function declaration, such that values can be automatically assigned if no argument is passed to them. In case any value is passed the default value is overridden and it becomes a parameterized argument. Virtual function is a member function that is d 3 min read
    • Can Virtual Functions be Inlined in C++? Virtual functions are member functions that are declared in the base class using the keyword virtual and can be overridden by the derived class. They are used to achieve Runtime polymorphism or say late binding or dynamic binding. Inline functions are used to replace the function calling location wi 2 min read
    • Virtual Destructor Deleting a derived class object using a pointer of base class type that has a non-virtual destructor results in undefined behavior. To correct this situation, the base class should be defined with a virtual destructor. For example, the following program results in undefined behavior. C/C++ Code // C 2 min read
    • Advanced C++ | Virtual Constructor In C++, we CANNOT make a constructor virtual. The reason is that C++ is a statically typed language, so the concept of a virtual constructor is a contradiction because the compiler needs to know the exact type at compile time to allocate the correct amount of memory and initialize the object correct 8 min read
    • Advanced C++ | Virtual Copy Constructor In the virtual constructor idiom we have seen the way to construct an object whose type is not determined until runtime. Is it possible to create an object without knowing it's exact class type? The virtual copy constructor address this question.Sometimes we may need to construct an object from anot 5 min read
    • Pure Virtual Functions and Abstract Classes in C++ Sometimes implementation of all functions cannot be provided in a base class because we don't know the implementation. Such a class is called an abstract class.For example, let Shape be a base class. We cannot provide the implementation of function draw() in Shape, but we know every derived class mu 6 min read
    • Pure Virtual Destructor in C++ A pure virtual destructor can be declared in C++. After a destructor has been created as a pure virtual object(instance of a class), where the destructor body is provided. This is due to the fact that destructors will not be overridden in derived classes, but will instead be called in reverse order. 4 min read
    • Can Static Functions Be Virtual in C++? In C++, a static member function of a class cannot be virtual. Virtual functions are invoked when you have a pointer or reference to an instance of a class. Static functions aren't tied to the instance of a class but they are tied to the class. C++ doesn't have pointers-to-class, so there is no scen 1 min read
    • RTTI (Run-Time Type Information) in C++ In C++, RTTI (Run-time type information) is a mechanism that exposes information about an object's data type at runtime and is available only for the classes which have at least one virtual function. It allows the type of an object to be determined during program execution. Runtime Casts The runtime 3 min read
    • Can Virtual Functions be Private in C++? A virtual function can be private as C++ has access control, but not visibility control. As mentioned virtual functions can be overridden by the derived class but under all circumstances will only be called within the base class. Example 1: Calling Private Virtual Function from Base Class Pointer to 4 min read

    C++ Exception Handling

    • Exception Handling in C++ In C++, exceptions are runtime anomalies or abnormal conditions that a program encounters during its execution. The process of handling these exceptions is called exception handling. Using the exception handling mechanism, the control from one part of the program where the exception occurred can be 11 min read
    • Exception Handling using classes in C++ In this article, we will discuss how to handle the exceptions using classes. Exception Handling: Exceptions are run-time anomalies or abnormal conditions that a program encounters during its execution.There are two types of exceptions:Synchronous ExceptionAsynchronous Exception(Ex: which are beyond 3 min read
    • Stack Unwinding in C++ Stack Unwinding is the process of removing function entries from function call stack at run time. The local objects are destroyed in reverse order in which they were constructed. Stack Unwinding is generally related to Exception Handling. In C++, when an exception occurs, the function call stack is 3 min read
    • User-defined Custom Exception with class in C++ We can use Exception handling with class too. Even we can throw an exception of user defined class types. For throwing an exception of say demo class type within try block we may write throw demo(); Example 1: Program to implement exception handling with single class C/C++ Code #include <iostream 3 min read

    C++ Files and Streams

    • File Handling through C++ Classes File handling is used to store data permanently in a computer. Using file handling we can store our data in secondary memory (Hard disk).How to achieve the File HandlingFor achieving file handling we need to follow the following steps:- STEP 1-Naming a file STEP 2-Opening a file STEP 3-Writing data 8 min read
    • I/O Redirection in C++ In C, we could use the function freopen() to redirect an existing FILE pointer to another stream. The prototype for freopen() is given as FILE * freopen ( const char * filename, const char * mode, FILE * stream ); For Example, to redirect the stdout to say a textfile, we could write : freopen ("text 3 min read

    C++ Templates

    • Templates in C++ with Examples A template is a simple yet very powerful tool in C++. The simple idea is to pass the data type as a parameter so that we don't need to write the same code for different data types. For example, a software company may need to sort() for different data types. Rather than writing and maintaining multip 10 min read
    • Using Keyword in C++ STL The using keyword in C++ is a tool that allows developers to specify the use of a particular namespace. This is especially useful when working with large codebases or libraries where there may be many different namespaces in use. The using keyword can be used to specify the use of a single namespace 6 min read

    C++ Standard Template Library (STL)

    • C++ Standard Template Library (STL) The C++ Standard Template Library (STL) is a set of template classes and functions that provides the implementation of common data structures and algorithms such as lists, stacks, arrays, sorting, searching, etc. It also provides the iterators and functors which makes it easier to work with algorith 9 min read
    • Containers in C++ STL (Standard Template Library) A container is a holder object that stores a collection of other objects (its elements). They are implemented as class templates, which allows great flexibility in the types supported as elements. The container manages the storage space for its elements and provides member functions to access them, 2 min read
    • Introduction to Iterators in C++ An iterator is an object (like a pointer) that points to an element inside the container. We can use iterators to move through the contents of the container. They can be visualized as something similar to a pointer pointing to some location and we can access the content at that particular location u 6 min read
    • Algorithm Library | C++ Magicians STL Algorithm For all those who aspire to excel in competitive programming, only having a knowledge about containers of STL is of less use till one is not aware what all STL has to offer. STL has an ocean of algorithms, for all < algorithm > library functions : Refer here.Some of the most used algorithms on 7 min read
    • Functors in C++ Please note that the title is Functors (Not Functions)!! Consider a function that takes only one argument. However, while calling this function we have a lot more information that we would like to pass to this function, but we cannot as it accepts only one parameter. What can be done? One obvious an 3 min read

    C++ Preprocessors

    • C Preprocessors Preprocessors are programs that process the source code before compilation. Several steps are involved between writing a program and executing a program in C. Let us have a look at these steps before we actually start learning about Preprocessors. You can see the intermediate steps in the above diag 10 min read
    • C Preprocessor Directives In almost every C program we come across, we see a few lines at the top of the program preceded by a hash (#) sign. They are called preprocessor directives and are preprocessed by the preprocessor before actual compilation begins. The end of these lines is identified by the newline character '\n', n 8 min read
    • #include in C #include is a way of including a standard or user-defined file in the program and is mostly written at the beginning of any C program. The #include preprocessor directive is read by the preprocessor and instructs it to insert the contents of a user-defined or system header file in our C program. The 5 min read
    • C Preprocessors Preprocessors are programs that process the source code before compilation. Several steps are involved between writing a program and executing a program in C. Let us have a look at these steps before we actually start learning about Preprocessors. You can see the intermediate steps in the above diag 10 min read
    • C Preprocessor Directives In almost every C program we come across, we see a few lines at the top of the program preceded by a hash (#) sign. They are called preprocessor directives and are preprocessed by the preprocessor before actual compilation begins. The end of these lines is identified by the newline character '\n', n 8 min read
    • Difference between Preprocessor Directives and Function Templates in C++ Preprocessor Directives are programs that process our source code before compilation. There are a number of steps involved between writing a program and executing a program in C / C++. Below is the program to illustrate the functionality of Function Templates: [GFGTABS] C++ // C++ program to illustr 3 min read

    C++ Namespace

    • Namespace in C++ | Set 1 (Introduction) Namespace provide the space where we can define or declare identifier i.e. variable, method, classes.Using namespace, you can define the space or context in which identifiers are defined i.e. variable, method, classes. In essence, a namespace defines a scope.Advantage of Namespace to avoid name coll 11 min read
    • namespace in C++ | Set 2 (Extending namespace and Unnamed namespace) We have introduced namespaces in below set 1.Namespace in C++ | Set 1 (Introduction) Defining a Namespace: A namespace definition begins with the keyword namespace followed by the namespace name as follows: namespace namespace_name {// code declarations i.e. variable (int a;)method (void add();)clas 4 min read
    • Namespace in C++ | Set 3 (Accessing, creating header, nesting and aliasing) Namespace in C++ | Set 1 (Introduction) Namespace in C++ | Set 2 (Extending namespace and Unnamed namespace) Different ways to access namespace: In C++, there are two ways of accessing namespace variables and functions. Defining a Namespace: A namespace definition begins with the keyword namespace f 5 min read
    • C++ Inline Namespaces and Usage of the "using" Directive Inside Namespaces Prerequisite: Namespaces in C++ In C++, namespaces can be nested, and the resolution of namespace variables is hierarchical. An inline namespace is a namespace that uses the optional keyword inline in its original-namespace definition. This allows the identifiers of the nested inline namespace to be 3 min read

    Advanced C++

    • Multithreading in C++ Multithreading is a feature that allows concurrent execution of two or more parts of a program for maximum utilization of the CPU. Each part of such a program is called a thread. So, threads are lightweight processes within a process. Multithreading support was introduced in C++11. Prior to C++11, w 6 min read
    • Smart Pointers in C++ Prerequisite: Pointers in C++ Pointers are used for accessing the resources which are external to the program - like heap memory. So, for accessing the heap memory (if anything is created inside heap memory), pointers are used. When accessing any external resource we just use a copy of the resource. 9 min read
    • auto_ptr vs unique_ptr vs shared_ptr vs weak_ptr in C++ Prerequisite – Smart Pointers Smart Pointer is a pointer-wrapping stack-allocated object. Smart pointers, in plain terms, are classes that wrap a pointer, or scoped pointers. C++ libraries provide implementations of smart pointers in the following types: auto_ptrunique_ptrshared_ptrweak_ptr They all 7 min read
    • Type of 'this' Pointer in C++ In C++, this pointer refers to the current object of the class and passes it as a parameter to another method. 'this pointer' is passed as a hidden argument to all non-static member function calls. Type of 'this' pointer The type of this depends upon function declaration. The type of this pointer is 2 min read
    • "delete this" in C++ Ideally delete operator should not be used for this pointer. However, if used, then following points must be considered.1) delete operator works only for objects allocated using operator new (See this post). If the object is created using new, then we can do delete this, otherwise behavior is undefi 1 min read
    • Passing a Function as a Parameter in C++ A function is a set of statements that take inputs, perform some specific computation, and produce output. The idea to use functions is to perform some commonly or repeatedly done tasks together and make a function so that instead of writing the same code again and again for different inputs. The ge 4 min read
    • Signal Handling in C++ Signals are the interrupts that force an OS to stop its ongoing task and attend the task for which the interrupt has been sent. These interrupts can pause service in any program of an OS. Similarly, C++ also offers various signals which it can catch and process in a program. Here is a list of variou 3 min read
    • Generics in C++ Generics is the idea to allow type (Integer, String, … etc and user-defined types) to be a parameter to methods, classes and interfaces. For example, classes like an array, map, etc, which can be used using generics very efficiently. We can use them for any type. The method of Generic Programming is 3 min read

    C vs C++

    • Difference between C and C++ Similarities between C and C++ are: Both the languages have a similar syntax.Code structure of both the languages are same.The compilation of both the languages is similar.They share the same basic syntax. Nearly all of C's operators and keywords are also present in C++ and do the same thing.C++ has 4 min read
    • Difference between C++ and Objective C 1. C++ :C++ or CPP is a general-purpose statically typed object-oriented programming language. In 1979, a Danish computer scientist named Bjarne Stroustrup wanted to make an extension to C that would allow it to use classes. This seed has expanded since then and had become one of the most used and w 3 min read
    • Write a C program that won't compile in C++ Although C++ is designed to have backward compatibility with C, there can be many C programs that would produce compiler errors when compiled with a C++ compiler. Following is the list of the C programs that won’t compile in C++: Calling a function before the declarationUsing normal pointer with con 4 min read
    • Write a program that produces different results in C and C++ Write a program that compiles and runs both in C and C++, but produces different results when compiled by C and C++ compilers. There can be many such programs, following are some of them. 1) Character literals are treated differently in C and C++. In C character literals like 'a', 'b', ..etc are tre 2 min read
    • How does 'void*' differ in C and C++? C allows a void* pointer to be assigned to any pointer type without a cast, whereas in C++, it does not. We have to explicitly typecast the void* pointer in C++ For example, the following is valid in C but not C++: void* ptr; int *i = ptr; // Implicit conversion from void* to int* Similarly, int *j 1 min read
    • Type Difference of Character Literals in C and C++ Every literal (constant) in C/C++ will have a type of information associated with it. In both C and C++, numeric literals (e.g. 10) will have int as their type. It means sizeof(10) and sizeof(int) will return the same value.If we compile what we have said in terms of code then it will look something 2 min read
    • Difference Between C Structures and C++ Structures Let's discuss, what are the differences between structures in C and structures in C++? In C++, structures are similar to classes. Differences Between the C and C++ StructuresC Structures C++ Structures Only data members are allowed, it cannot have member functions.Can hold both: member functions and 6 min read
    • Cin-Cout vs Scanf-Printf Regular competitive programmers face common challenge when input is large and the task of reading such an input from stdin might prove to be a bottleneck. Such problem is accompanied with “Warning: large I/O data”. Let us create a dummy input file containing a line with 16 bytes followed by a newlin 3 min read

    C++ vs Java

    • Similarities and Difference between Java and C++ Nowadays Java and C++ programming languages are vastly used in competitive coding. Due to some awesome features, these two programming languages are widely used in industries as well as comepetitive programming . C++ is a widely popular language among coders for its efficiency, high speed, and dynam 6 min read
    • Comparison of Inheritance in C++ and Java The purpose of inheritance is the same in C++ and Java. Inheritance is used in both languages for reusing code and/or creating an ‘is-a’ relationship. The following examples will demonstrate the differences between Java and C++ that provide support for inheritance. 1) In Java, all classes inherit fr 4 min read
    • Static Keyword in C++ Prerequisite: Static variables in C The static keyword has different meanings when used with different types. We can use static keywords with: Static Variables: Variables in a function, Variables in a classStatic Members of Class: Class objects and Functions in a class. Let us now look at each one o 5 min read
    • How Does Default Virtual Behavior Differ in C++ and Java? Let us discuss how the default virtual behavior of methods is opposite in C++ and Java. It is very important to remember that in the C++ language class member methods are non-virtual by default. They can be made virtual by using virtual keywords. For example, Base::show() is non-virtual in following 3 min read
    • Comparison of Exception Handling in C++ and Java Both languages use to try, catch and throw keywords for exception handling, and their meaning is also the same in both languages. Following are the differences between Java and C++ exception handling: Java C++ Only throwable objects can be thrown as exceptions.All types can be thrown as exceptions.W 4 min read
    • Foreach in C++ and Java Foreach loop is used to iterate over the elements of a container (array, vectors, etc) quickly without performing initialization, testing, and increment/decrement. The working of foreach loops is to do something for every element rather than doing something n times. There is no foreach loop in C, bu 6 min read
    • Templates in C++ vs Generics in Java While building large-scale projects, we need the code to be compatible with any kind of data which is provided to it. That is the place where your written code stands above that of others. Here what we meant is to make the code you write be generic to any kind of data provided to the program regardl 4 min read
    • Floating Point Operations & Associativity in C, C++ and Java Do Floating point operations follow property of associativity? In other words, do we always get the same results for expressions "(A + B) + C" and "A + (B + C)" One may expect that floating numbers to follow the rule of associativity in programming languages as they are associative mathematically. H 4 min read

    Competitive Programming in C++

    • Competitive Programming - A Complete Guide Competitive Programming is a mental sport that enables you to code a given problem under provided constraints. The purpose of this article is to guide every individual possessing a desire to excel in this sport. This article provides a detailed syllabus for Competitive Programming designed by indust 8 min read
    • C++ tricks for competitive programming (for C++ 11) We have discussed some tricks in the below post. In this post, some more tricks are discussed. Writing C/C++ code efficiently in Competitive programming Although, practice is the only way that ensures increased performance in programming contests but having some tricks up your sleeve ensures an uppe 5 min read
    • Writing C/C++ code efficiently in Competitive programming First of all you need to know about Template, Macros and Vectors before moving on the next phase! Templates are the foundation of generic programming, which involve writing code in a way that is independent of any particular type.A Macro is a fragment of code which has been given a name. Whenever th 6 min read
    • Why C++ is best for Competitive Programming? C++ is the most preferred language for competitive programming. In this article, some features of C++ are discussed that make it best for competitive programming. STL (Standard Template Library): C++ has a vast library called STL which is a collection of C++ templates to provide common programming d 4 min read
    • Test Case Generation | Set 1 (Random Numbers, Arrays and Matrices) The test cases are an extremely important part of any "Software/Project Testing Process". Hence this Set will be very important for all aspiring software developers. The following are the programs to generate test cases. Generating Random Numbers C/C++ Code // A C++ Program to generate test cases fo 12 min read
    • Fast I/O for Competitive Programming In competitive programming, it is important to read input as fast as possible so we save valuable time. You must have seen various problem statements saying: " Warning: Large I/O data, be careful with certain languages (though most should be OK if the algorithm is well designed)" . The key for such 4 min read
    • Setting up Sublime Text for C++ Competitive Programming Environment Sublime Text is an IDE popular among competitive programmers due to its smooth and simple user interface, customizable plugins and other exciting features. In this article, we will discuss how to set up Sublime Text for competitive programming in C++. Table of Content OverviewStep 1: Creating a Buil 3 min read
    • How to setup Competitive Programming in Visual Studio Code for C++ GCC compiler installation We need to install GCC compilers for Windows. Linux has already GCC installed. Steps for installation1.Download and Install the MinGW for GCC compiler using this link. 2.Open Control Panel in your system and then select: System (Control Panel) 3.Click on the Advanced system 5 min read
    • Which C++ libraries are useful for competitive programming? C++ is one of the most recommended languages in competitive programming (please refer our previous article for the reason) C++ STL contains lots of containers which are useful for different purposes. In this article, we are going to focus on the most important containers from competitive programming 3 min read
    • Common mistakes to be avoided in Competitive Programming in C++ | Beginners Not using of 1LL or 1ll when needed // A program shows problem if we // don't use 1ll or 1LL #include <iostream> using namespace std; int main() { int x = 1000000; int y = 1000000; // This causes overflow even // if z is long long int long long int z = x*y; cout << z; return 0; } Output: 7 min read

    C++ Interview Questions

    • C++ Interview Questions and Answers (2024) C++ - the must-known and all-time favourite programming language of coders. It is still relevant as it was in the mid-80s. As a general-purpose and object-oriented programming language is extensively employed mostly every time during coding. As a result, some job roles demand individuals be fluent i 15+ min read
    • Top C++ STL Interview Questions and Answers The Standard Template Library (STL) is a set of C++ template classes that are used to implement widely popular algorithms and data structures such as vectors, lists, stacks, and queues. It is part of the C++ Language ISO standard. STL is a popular topic among interviewers, so it is useful for both f 15+ min read
    • 30 OOPs Interview Questions and Answers (2024) Updated Object-oriented programming, or OOPs, is a programming paradigm that implements the concept of objects in the program. It aims to provide an easier solution to real-world problems by implementing real-world entities such as inheritance, abstraction, polymorphism, etc. in programming. OOPs concept is 15+ min read
    • Top C++ Exception Handling Interview Questions and Answers Exception Handling is one of the most important topics from the C++ Interview perspective. Exception handling is an effective means to handle the runtime errors that disrupt the normal flow of the program. It is one of the most used concepts in real-world embedded systems so it is common to encounte 8 min read
    • C++ Programming Examples Writing C++ programs yourself is the best way to learn the C++ language. C++ programs are also asked in the interviews. This article covers the top practice problems for basic C++ programs on topics like control flow, patterns, and functions to complex ones like pointers, arrays, and strings. C++ Tu 9 min read
    • C++ Interview Questions and Answers (2024) C++ - the must-known and all-time favourite programming language of coders. It is still relevant as it was in the mid-80s. As a general-purpose and object-oriented programming language is extensively employed mostly every time during coding. As a result, some job roles demand individuals be fluent i 15+ min read
  • Top 50 C++ Project Ideas For Beginners & Advanced C++ is one of the most popular programming languages widely used in the software industry for projects in different domains like games, operating systems, web browsers, DBMS, etc due to its fast speed, versatility, lower-level memory access, and many more. Many top companies like Microsoft, Google, 15+ min read
Article Tags :
  • C Language
  • C++
  • Difference Between
Practice Tags :
  • CPP
Like three90RightbarBannerImg Explore More 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 Got It ! Lightbox Improvement Suggest changes 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 CharLimit:2000

What kind of Experience do you want to share?

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

Từ khóa » C Vs Cpp