Concept explainers
Operator overloading:
- In C++
programming , operator overloading defines an operators as user defined classes and it performs the operations with one or more variables together. - When an overloaded operator is defined as the user-defined type for executing the operations, it should be defined as a member function. So, it will help to invoke the operands.
- For manipulating data of the primitive data types, the C++ gives many operators.
Overloaded “[]” operator:
Overloaded operator contains many operator, the “[]” operator is the one of the type.
- The Overloaded “[]” operator is used to access the array value.
- It gives the ability to write a class that has an array like format.
Example:
Consider the example of overloaded “[]” operator is as follows:
// Include the header files
#include <iostream>
using namespace std;
// constant array size
const int S = 5;
// Declaration of the "Sample" class
class Sample
{
//access specifier
private:
//declare the variable
int a[S];
//access specifier
public:
//condtructor
Sample()
{
//declare the variable
int i;
//check the condition
for(i = 0; i < S; i++)
{
//set the value
a[i] = i;
}
}
//definition of overloaded "[]" operator
int &operator[](int i)
{
//check the condition
if( i >= S )
{
//display the error message
cout << "Index out of bounds" <<endl;
// return first element.
return a[0];
}
//otherwise
else
{
// return the element.
return a[i];
}
}
};
//main method
int main()
{
//create the object for the "Sample" class
Sample x;
//display the output
cout << "x[2] value is : " << x.operator[](2) <<endl;
cout << "x[5] value is : " << x.operator[](5)<<endl;
//return statement
return 0;
}
Want to see the full answer?
Check out a sample textbook solutionChapter 11 Solutions
Starting Out With C++: Early Objects, Student Value Edition & Myprogramminglab With Pearson Etext -- Standalone Access Card Package, 9/e
- Q. ocaml, unlike most functional languages , does not allow functions to return structured values ? - True - False Q. The Ocaml type signature val f : 'a - > ' a = <fun> indicates that function f has parameter and return value that can be any type , as long as the types of f's parameter and return value are the same. - True - Falsearrow_forwardThis is in c++ The base class Pet has private data members petName, and petAge. The derived class Dog extends the Pet class and includes a private data member for dogBreed. Complete main() to: create a generic pet and print information using PrintInfo(). create a Dog pet, use PrintInfo() to print information, and add a statement to print the dog's breed using the GetBreed() function. main.cpp #include <iostream> #include<string> #include "Dog.h" using namespace std; int main() { string petName, dogName, dogBreed; int petAge, dogAge; Pet myPet; Dog myDog; getline(cin, petName); cin >> petAge; cin.ignore(); getline(cin, dogName); cin >> dogAge; cin.ignore(); getline(cin, dogBreed); // TODO: Create generic pet (using petName, petAge) and then call PrintInfo // TODO: Create dog pet (using dogName, dogAge, dogBreed) and then call PrintInfo // TODO: Use GetBreed(), to output the breed of the dog } Dog.cpp #include "Dog.h" #include…arrow_forwardWrite a function nth_member(data, n) that takes a list data and an integer n as parameters and returns the nth member of the list of data, assuming the first member has an index of n = 0. You may assume that data contains at least n + 1 members.arrow_forward
- in c++: Implement the Array class that is defined below and test it in the main program. The main program must test all the member functions including the overloaded operators that are defined in the class: #ifndef array_h #define array_h #include <iostream> using namespace std; class Array { // Class declaration friend const Array operator+(const Array & a1, const Array &a2); friend bool operator==(const Array & a, const Array &b);//Equality test public: Array(int = 10); //Initialize the array with 0 values, default size =10 Array(const Array & a); // copy constructor ~Array();//Destructor int getSize();// return the size of the array. const Array & operator=(const Array & a);//assignement operator Array operator+(int x);//+ operator bool operator!=(const Array & a) const;//Not equal test void read(); void print(); Array operator-();//Negate (unary operation)…arrow_forwardEach member-function definition outside its corresponding class template definitionmust begin with template and the same template parameters as its class template T/Farrow_forwardC++ Two stacks of the same type are the same if they have the same number of elements and their elements at the corresponding positions are the same. Overload the relational operator == for the class linkedStackType that returns true if two stacks of the same type are the same; it returns false otherwise. Also, write the definition of the function template to overload this operator. Write a program to test the various functions and operators of the class linkedStackType.arrow_forward
- in C++... kth Element Extend the class linkedListType by adding the following operations:a. Write a function that returns the info of the kth element of the linked list. If no such element exists, terminate the program.b. Write a function that deletes the kth element of the linked list. If no such element exists, terminate the program. Provide the definitions of these functions in the class linkedListType. PLEASE DON'T reject this question, this is the whole question that I have... so please do it however u can, Thank you!arrow_forwardDefine a header file named BST.h. In this header file, declare your BST class./*** header file BST.h*/class BST {private:struct TreeNode {int val;TreeNode* left;TreeNode* right;};TreeNode* root;// private function declarations here....public:// public function declarations here...} (C++)arrow_forwardUsing C++ Without Using linked lists: Create a class AccessPoint with the following: x - a double representing the x coordinate y - a double representing the y coordinate range - an integer representing the coverage radius status - On or Off Add constructors. The default constructor should create an access point object at position (0.0, 0.0), coverage radius 0, and Off. Add accessor and mutator functions: getX, getY, getRange, getStatus, setX, setY, setRange and setStatus. Add a set function that sets the location coordinates and the range. Add the following member functions: move and coverageArea. Add a function overLap that checks if two access points overlap their coverage and returns true if they do. Add a function signalStrength that returns the wireless signal strength as a percentage. The signal strength decreases as one moves away from the access point location. Represent this with bars like, IIIII. Each bar can represent 20% Test your class by writing a main function that…arrow_forward
- Using C++ add to the below code to pick an operator and define it for your class. Include the header of the operator function like Fraction operator+(Fraction frac) You should include the function header for both member function and (if possible) nonmember function implementation. #include <iostream> using namespace std;class MobilePhone {private: std::string aabrand; std::string aamodel; int aastorageCapacity; public: MobilePhone(std::string b, std::string m, int s); std::string getBrand(); std::string getModel(); int getStorageCapacity(); }; MobilePhone::MobilePhone(std::string b, std::string m, int s) { aabrand = b; aamodel = m; aastorageCapacity = s;} std::string MobilePhone::getBrand() { return aabrand;} std::string MobilePhone::getModel() { return aamodel;} int MobilePhone::getStorageCapacity() { return aastorageCapacity;} int main() {MobilePhone myPhone("Apple", "iPhone 12 ProMax", 256); std::cout << "Brand: " <<…arrow_forwardin C++ kth ElementExtend the class linkedListType by adding the following operations:a. Write a function that returns the info of the kth element of the linked list. If no such element exists, terminate the program.b. Write a function that deletes the kth element of the linked list. If no such element exists, terminate the program. Provide the definitions of these functions in the class linkedListType. please, do not copy from any other sources, give me a fresh new code. Thank youarrow_forwarddo part 4 import java.util.*; // Car classclass Car{ private String name; // Variable to hold car name private String model; // Variable to hold car model // Default constructor Car(){ this.name = null; this.model = null; } // Parametrised constructor Car(String name, String model){ this.name = name; this.model = model; } // Function to get car name public String getName(){ return this.name; }} // Dealer classclass Dealer{ private Car[] arr; // Array holding car objects for a dealer private int count; // Variable to hold number of cars under a dealer // Default constructor Dealer(){ arr = new Car[50]; count=0; } // Function to add a car under a dealer public void addCar(Car obj){ this.arr[this.count] = obj; this.count++; } // Function to check if a car exists under a dealer or not public boolean contains(String name){…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education