Skip to main content

C++ Classes and Objects - Tech Trone

C++ Classes and Objects

     Class: The building block of C++ that leads to Object Oriented programming is a Class. It is a user defined data type, which holds its own data members and member functions, which can be accessed and used by creating an instance of that class. A class is like a blueprint for an object.

     For Example: Consider the Class of Cars. There may be many cars with different names and brand but all of them will share some common properties like all of them will have 4 wheels, Speed Limit, Mileage range etc. So here, Car is the class and wheels, speed limits, mileage are their properties.

  •  A Class is a user defined data-type which have data members and member functions.
  • Data members are the data variables and member functions are the functions used to manipulate these variables and together these data members and member functions defines the properties and behavior of the objects in a Class.
  • In the above example of class Car, the data member will be speed limit, mileage etc and member functions can be apply brakes, increase speed etc
    An Object is an instance of a Class. When a class is defined, no memory is allocated but when it is instantiated (i.e. an object is created) memory is allocated.
     
     
     Defining Class and Declaring Objects
     
     
     A class is defined in C++ using keyword class followed by the name of class. The body of class is defined inside the curly brackets and terminated by a semicolon at the end.
     
     

     Declaring Objects: When a class is defined, only the specification for the object is defined; no memory or storage is allocated. To use the data and access functions defined in the class, you need to create objects.

     Syntax:


    ClassName ObjectName;
     
     Accessing data members and member functions: The data members and member functions of class can be accessed using the dot(‘.’) operator with the object. For example if the name of object is obj and you want to access the member function with the name printName() then you will have to write obj.printName() .


     Accessing Data Members

     
    The public data members are also accessed in the same way given however the private data members are not allowed to be accessed directly by the object. Accessing a data member depends solely on the access control of that data member.
    This access control is given by Access modifiers in C++. There are three access modifiers : public, private and protected.


    // C++ program to demonstrate
    // accessing of data members
     
    #include <bits/stdc++.h>
    using namespace std;
    class Geeks
    {
        // Access specifier
        public:
     
        // Data Members
        string geekname;
     
        // Member Functions()
        void printname()
        {
           cout << "Geekname is: " << geekname;
        }
    };
     
    int main() {
     
        // Declare an object of class geeks
        Geeks obj1;
     
        // accessing data member
        obj1.geekname = "Sachin";
     
        // accessing member function
        obj1.printname();
        return 0;
    }
     

    Output:

    Geekname is: Sachin
     
     
     
     
    Member Functions in Classes

     There are 2 ways to define a member function. 
    • Inside class definition
    • Outside class definition

    To define a member function outside the class definition we have to use the scope resolution :: operator along with class name and function name.

    // C++ program to demonstrate function
    // declaration outside class
     
    #include <bits/stdc++.h>
    using namespace std;
    class Geeks
    {
        public:
        string geekname;
        int id;
         
        // printname is not defined inside class defination
        void printname();
         
        // printid is defined inside class defination
        void printid()
        {
            cout << "Geek id is: " << id;
        }
    };
     
    // Definition of printname using scope resolution operator ::
    void Geeks::printname()
    {
        cout << "Geekname is: " << geekname;
    }
    int main() {
         
        Geeks obj1;
        obj1.geekname = "Sachin";
        obj1.id=15;
         
        // call printname()
        obj1.printname();
        cout << endl;
         
        // call printid()
        obj1.printid();
        return 0;
    }
     

    Output:
    Geekname is: Sachin
    Geek id is: 15
    

    Note that all the member functions defined inside the class definition are by default inline, but you can also make any non-class function inline by using keyword inline with them. Inline functions are actual functions, which are copied everywhere during compilation, like pre-processor macro, so the overhead of function calling is reduced.
     
     Note: Declaring a friend function is a way to give private access to a non-member function.


     

Comments

Popular posts from this blog

What is the difference between a direct and an indirect address instruction ?

Direct addressing means the instruction refers directly to the address being accessed. That is, the instruction encoding itself contains the address of the location. Depending on the instruction set, it may also allow computing a small index relative to the address. When used that way, you can think of that as a direct-indexed mode. (Note: Some processors call ‘direct’ mode ‘absolute’, such as the 6502.)

Indirect addressing uses an address held in a register or other location to determine what memory location to read or write. The idea here is that the instruction itself isn’t directly telling you the address to access, but rather indirectly telling the CPU where to find that address. The processor may also allow you to add a small offset to the indirect address, giving an indirect-indexed addressing mode.
Also Read : 5 Best Terminal Emulators for Linux The 6502 one is a little quirky: The 6502 doesn’t have general-purpose registers large enough to store addresses, so i…

What is ASP.NET? and it's ARCHITECTURE

What is ASP.Net?ASP.Net is a web development platform provided by Microsoft. It is used for creating web-based applications. ASP.Net was first released in the year 2002.
The first version of ASP.Net deployed was 1.0. The most recent version of ASP.Net is version 4.6. ASP.Net is designed to work with the HTTP protocol. This is the standard protocol used across all web applications.

ASP.Net applications can also be written in a variety of .Net languages. These include C#, VB.Net, and J#. In this chapter, you will see some basic fundamental of the .Net framework.

The full form of ASP is Active Server Pages, and .NET is Network Enabled Technologies.
ASP.NET Architecture and its Components ASP.Net is a framework which is used to develop a Web-based application. The basic architecture of the ASP.Net framework is as shown below.
 he architecture of the.Net framework is based on the following key components

Language – A variety of languages exists for .net framework. They are VB.n…

What Is Defensive Programming ?

Defensive programming is a form of defensive design intended to ensure the continuing function of a piece of software under unforeseen circumstances. Defensive programming practices are often used where high availability, safety or security is needed. – WikiPedia


Introduction Defensive programming is a form of defensive design intended to ensure the continuing function of a piece of software under under unforeseen circumstances. Defensive programming practices are often used where high availability, safety or security is needed.
Advantages Defensive programming is an approach to improve software and source code, in terms of:
General qualityMaking the source code comprehensibleMaking the software behave in a predictable mannerDrawback Overly defensive programming, however, may safeguard against errors that will never be encountered, thus incurring run-time and maintenance costs. There is also the risk that the code traps or prevents too many exceptions, potentially resulting i…