![Starting Out with C++: Early Objects](https://www.bartleby.com/isbn_cover_images/9780133360929/9780133360929_largeCoverImage.gif)
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;
}
![Check Mark](/static/check-mark.png)
Want to see the full answer?
Check out a sample textbook solution![Blurred answer](/static/blurred-answer.jpg)
Chapter 11 Solutions
Starting Out with C++: Early Objects
- C++ OOParrow_forwardIn c++ The student class defines the strings studName and studSSN as protected data members. Aconstructor has arguments that initialize the data. The class studentAthlete has a private datamember sport, which describes the sport the student plays. Both classes have a memberfunction identify(). The base class student outputs the student information in the form student studName Social Security Number studSSN The function in the base class should support polymorphism, and the function in the derivedstudentAthlete class should add the information “Sport <sport>”. In the file “student.h”,declareand implement the two classes in an inheritance hierarchy. In a program, initialize an array of five student pointers as follows: student ja(“John Anderson”, “345-12-3547”);student bw(“Bill Williams”, “286-72-6194”);studentAthlete bj(“Bob Johnson”, “294-87-6295”, “football”);studentAthlete dr(“Dick Robinson”, “669-28-9296”, “baseball”); // list of student pointersstudent *stud[] = {&ja,…arrow_forwardGiven the code:class DigitalWallet {private; long *id; // wallet id long *accounts; // dynamic array of account numbers int numAccounts; // number of user accounts in the array}1. Write a function definition for a Constructor to initialize all data members.2. Write a function definition for the Copy Constructor.3. Write a function definition for the Destructor.arrow_forward
- 1 def all_fluffy(s: str) -> bool: 2 """Return True iff every letter in s is fluffy. Fluffy letters are those 3. that appear in the word 'fluffy'. 4 #TODO: Add at least one example to the docstring and complete the body 7 8 9 10 #TODO: Now complete the function bodyarrow_forwardC++ codearrow_forwardSmart Pointer: Write a smart pointer class. A smart pointer is a data type, usually implemented with templates, that simulates a pointer while also providing automatic garbage collection. It automatically counts the number of references to a SmartPointer<?> object and frees the object of type T when the reference count hits zero.arrow_forward
- #ifndef PLAYER_H#define PLAYER_Hclass Player{private:string name;int score;public:void setName(string na);void setScore(int sc);int getScore();string getName();};#endifarrow_forwardI just need help with the 3 functions in the Deck class. I get an error saying a nonstatic member reference must be relative to a specific object for the float functions. I also need help writing the sort function. #include <iostream>#include <string>#include <fstream>#include <random> #include <vector> using namespace std; /******************************** CARD CLASS*******************************/class Card {private:char Suit, Value;// Weight Proves that A > K > Q > J > T > 9-2short Weight;public:Card();Card(char suit, char value);string GetCard() const;int GetWeight() const;char GetSuit() const;static bool LessThan(Card LHS, Card RHS);static bool Equal(Card LHS, Card RHS); Card::Card() Card::Card(char suit, char value) : Suit(suit), Value(value){ switch(Value); } string Card::GetCard() const int Card::GetWeight() const char Card::GetSuit() const bool Card::LessThan(Card LHS, Card RHS) {if (LHS.Weight == RHS.Weight) {return LHS.Suit <…arrow_forwardC++arrow_forward
- Languge : c++ Question : Make a program to overload the * operator for multiplying a Distance class object with a integer. The Distance class should have meters and kilometres as data members. Add all appropriate member functions for the program to work properly. In addition, make the main function to test your class as follows: int main() { Distance dist(2, 700); dist= dist * 2; dist.display(); return 0;arrow_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_forwardC++ assigment: It's a Number Guesser assignment. It asks to write a derived class of the NumberGuesser class named RandomNumberGuesser. The derived class should override the behavior of the getCurrentGuess method. It may also add member data and its own constructor. It may also override the higher(), lower() and reset() methods as you see fit. This is the code for NumberGuesser class. It is defined entirely in-line in the following file: NumberGuesser.h // NumberGuesser.h // #ifndef NUMBERGUESSER_H #define NUMBERGUESSER_H #include <iostream> class NumberGuesser { protected: int low; int originalLow; int high; int originalHigh; public: NumberGuesser(int l, int h) { low = originalLow = l; high = originalHigh = h; } virtual int getCurrentGuess() { return (high + low) / 2; } virtual void higher() { low = getCurrentGuess() + 1; } virtual void lower() { high = getCurrentGuess() - 1; } virtual…arrow_forward
- C++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology PtrC++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
![Text book image](https://www.bartleby.com/isbn_cover_images/9781133187844/9781133187844_smallCoverImage.gif)
![Text book image](https://www.bartleby.com/isbn_cover_images/9781337102087/9781337102087_smallCoverImage.gif)