C++ :: Operator Overloading - Comparing Objects (Fractions)

Jul 25, 2013

I'm trying to compare 2 fractions using operator overloading. The program crashes when this is called;

this is definition:
bool operator == (const Fraction& f1, Fraction& f2) {
if (f1==f2)return true;
else return false;
}

this is my calling in the main:
Fraction f1, f2;
cout<<"Enter in the format: 2/4 or 4/9
";
cout << "enter first fraction: ";
f1.Input();
cout << "enter second fraction: ";
f2.Input();

Fraction result:
result = (f1 == f2);//i think problem lies here.
result.Show();

and this is the prototype of the operator:
friend bool operator == (const Fraction& f1, Fraction& f2);

View 7 Replies


ADVERTISEMENT

C++ :: Polynomial Objects - Deep Copy And Operator Overloading

Feb 22, 2015

In main I instantiate two Polynomial objects -- p1 and p2:

int main() {
const int SIZE = 3;
Polynomial *p1 = new Polynomial(SIZE);
Polynomial *p2 = new Polynomial(SIZE);

//Read data into p1
std::cout << "Initialize Polynomial Coefficients (1)" << std::endl;

[Code] .....

The implementation file for Polynomial is as follows:

Polynomial::~Polynomial() {
delete [] this->m_Ptr;
this->m_Ptr = NULL;
} Polynomial::Polynomial(int size) {

[Code] .....

What works: Adding two pointers. The output is correctly produced.

The problem in particular occurs in main when p1 and p2 are attempted to be multiplied. The code attempts to release the memory upon multiplication but I receive a run-time error.

The output for the difference of the two polynomial objects is incorrect. It is displaying addresses.

View 3 Replies View Related

C++ :: Overloading Input Operator For Rational Type Objects To Work

Nov 13, 2014

I cannot get my function overloading the input operator for rational type objects to work.

lab9.cpp: In function ‘std::istream& operator>>(std::istream&, const rational&)’:
lab9.cpp:186:20: error: invalid initialization of reference of type ‘std::istream& {aka std::basic_istream<char>&}’ from expression of type ‘rational’
return (inputFrac);

lab9.h

#include <iostream>
using namespace std;
class rational {
public:
rational();
rational(int a, int b);

[Code] ......

View 4 Replies View Related

C++ :: Overloading Addition And Comparing Expressions In A While Loop

Apr 28, 2015

I have two questions that are related to each other. The first one is about overloading the addition operator.

I have defined a struct as the following:

Code:
#include <iostream>
#include <string>
struct Sales_data {

[Code] ....

I then overloaded the I/O operators so I could print to the screen information related Sales_data.

Code:
// overload ostream in order for cout to work
std::ostream& operator << (std::ostream & out,
const Sales_data & cSales_data) {
out << cSales_data.bookNo << ", " << cSales_data.units_sold << ", "

[Code] ....

My first issue is with overloading the addition operator. Everyone works correctly except for std::cout << item << std:endl; will no not output the ISBN number only the units_sold and revenue when added together.

Code:
// addition operator rules
Sales_data Sales_data::operator + (const Sales_data & data2) {
units_sold += data2.units_sold;
revenue += data2.revenue;
return *this;
}

Now here is the code in its entirety

Code:
#include <iostream>
#include <string>
// Sales_data structure
struct Sales_data {
std:: string bookNo;
unsigned units_sold = 0;

[code] .....

After total = total + item;, I would like to print the total for this particular ISBN. However, I only get: blank, total units, total revenue where blank is where the ISBN would go but doesn't print after addition. My second question has to do with comparing the ISBN's of the books entered during the while loop. I would like to do something like

Code:
if (item_i.bookNo == item_i+1.bookNo) {
total = total + item;
} else {
std::cerr << "Books entered must have the same ISBNs" << std::endl;
}

Unfortunately, I cannot figure out how to set up a comparison of the bookNos. If I used #include <casset> in the overload + rule, it will immediately exit since I have no way to compare the ISBNs.

View 3 Replies View Related

C++ :: Overloading I/O Operator

Oct 26, 2013

In this below example:

class Point {
private:
double m_dX, m_dY, m_dZ;

[code].....

In that situation, << does not call the overloaded function, but rather calls the << method defined in the i/o library, which prints a message to the controlling terminal. So once it prints the message to the terminal, it then returns the out instance. Why return the out instance rather than a boolean like true? As you can see from the example, once the message is printed to terminal, out is not used anymore.

View 2 Replies View Related

C++ :: Operator Overloading IStream

Jan 26, 2015

I am working on this assignment...

Code:
#include <iostream>#include <iomanip>
using namespace std;
class Score
{
private:
// Value at which we'll shift digits from million_counter to billion_counter
static const int THRESHOLD = 1000000000;

[Code] ....

It gives the errors:
line 105 error: million_counter was not declared in this scope
line 106 error: normalizeScore was not declared in this scope
line 110 error: million_counter was not declared in this scope
and more of that until
line 170 error: no match for 'operator<<' in 'std:perator<< <std::char_traits<char> >((* & std::cout), ((const char*)"a+b is ")) <<operator+((*c(const Score*) (& a)), (*(const Score*)(& b)))'

I thought that because i declared friend functions, they would be able to access the private variables of the class.

View 2 Replies View Related

C++ :: Operator Overloading In A Correct Way?

Apr 1, 2013

Well... I observed, as a non-professional programmer that "overloading operators" has some strict rules and some conventions... so any operator can differ from another. In order to have a clearest idea, I'd like to ask you to specify, for every operator, the correct (or best) way to overload it.

There are cases where you define &operator and cases where you define operator (without "&"). There are cases where operator are defined as "friend" inside class, and other cases where operator is declared externally.

example: ostream &operator<<
(why it uses & ??)

So can we have a summary for all kind of operators?

View 19 Replies View Related

C++ :: Overloading Output Operator

Mar 31, 2013

I'm trying to overload operator<<, but I get an error saying 'ostream' does not name a type. Am I forgetting to declare something else? ostream& operator<< (ostream& out, Struct &b);I made sure to #include <iostream> too.

View 1 Replies View Related

C++ :: Operator Overloading WITH Chaining

Jun 14, 2014

I am having a bit of an issue figuring out how to operator overload with chaining. I have this as my operator= function (Its for linked lists)

WORD & WORD::operator=(const WORD & Org){
cout << "
operator= has been called WITH CHAINING
";
character *p = front;

[Code] ....

I want to be able to do X = X = X where X is of class WORD, but it errors when that line is called. And by error, I dont mean a written error, it just compiles, then says 'MSVC has stopped working' on a new pop up.

View 4 Replies View Related

C++ :: Operator Overloading For Matrices?

Sep 16, 2014

I want to implement operator overloading for +=, so that the following arethmetic is possible for matrices: matrix += matrix

Here is how I have defined it in matrix.h

#ifndef MATRIX_H
#define MATRIX_H
#include <cassert>
#include <iostream>
#include <iomanip>
using namespace std;
template <class T> class Matrix;
template <class T> Matrix<T> operator+= (const Matrix<T>& m1, const Matrix<T>& m2);

[code].....

How do I implement this correctly?

View 7 Replies View Related

C++ :: Comparing Math Operator With A Variable?

Oct 14, 2013

I am trying to compare a math operator with a variable, but i keep getting this error:

postfixDriver.cpp:93: error: expected primary-expression before ')' token.

I'm sure it's probably something simple, but im just not seeing it. Here is the code snippet:

while (strlen(str) != 0) {
split (str, token);
Postfix stack;
double a;
double b;
double answer;
if (atof(token)==0.0)

[Code] .....

View 2 Replies View Related

C++ :: Finishing Two Operator Overloading Functions

Apr 27, 2013

How to finish these two remaining operator overloading functions

Also, "contents and NumItems are private"

Code:
Bag operator+ (const Bag& b1, const Bag& b2);
//Postcondition: the bag returned is the union of b1 and b2.
ostream& operator<<(ostream&, const Bag&);
//Overloading operator <<

[Code] .....

View 9 Replies View Related

C++ :: Operator Overloading And Exception Handling

Nov 15, 2013

I have a date class and i overloaded operator >> to accept input in dd/mm/yyyy format. if i enter the wrong date format my program will crash. How do i do exception handling for this? How should i do the try part? and for catch, I'll just catch a date class variable?

Code:
void operator >> (istream &is, clsDate &date) {
string inputDate;
is >> inputDate;
int mm = stringToNumber(inputDate.substr(3,2)); // read 2 characters from character number 3 start
int dd = stringToNumber(inputDate.substr(0,2)); // read 2 characters from character number 0 start
int yy = stringToNumber(inputDate.substr(6,4)); // read 4 characters from character number 6 start

[Code] .....

View 2 Replies View Related

C++ :: Overloading Operator + For Literal Strings?

Sep 8, 2013

i have 1 nice write() function:

void write() {
cout <<"";
}
template <typename A, typename ...B>
void write(A argHead, B... argTail) {
cout << argHead;
write(argTail...);
}

these function works. but if i concat literal strings with '+', i must use '(string)'. so i'm trying overload the operator + for concat literal strings, but without sucess:(

string operator + ( char *value1) {
string value2;
value2=(string) value2+value1;
return value2;
}

(these functions are inside of my Console class)

View 2 Replies View Related

C++ ::  Operator Overloading Using A Friend Function

Jul 24, 2013

What is the role of friend function in this program? Is it even executed here?

#include <iostream>
using namespace std;
class loc {
int longitude, latitude;
public:
loc() {} // needed to construct temporaries

[Code] ....

View 2 Replies View Related

C++ :: Overloading Operator Of Inherited Classes

Apr 19, 2013

I have a class A, from which three classes Aa Ab and Ac are inherited. In class A I have defined some functions by virtual foo()=0, which I implemented in each subclass. Each class is written in a separated .h and .cpp file.

However, now I think it is possible to overload the operator+ INSIDE each class (including pure virtual in class A), such that something like

int main() {
A *value = new Aa();
A value2 = *value + 1.0f;
}

This should be realizable, because the operator+ is part of the Aa class. Now, I would like to do something like

int main() {
A *value = new Aa();
A value2 = 1.0f + *value;
}

This time, I expect I cannot overwrite the operator+, because it is not part of either class A or class Aa.

View 7 Replies View Related

C++ :: Operator Overloading And Output Suppression

Dec 30, 2013

1st Question: I have three different classes A, B, and C; and correspondingly overloaded the insertion stream operator(<<) for all three classes. Classes A and B each have objects of class C as private data members. I am seeking a scheme whereby the << operator behaves differently for class C objects when an object of class A is to be printed from when an object of class B is to be printed. In other words, I want to have one << operator function invoked for class C when the object in question is of class A and another << operator function called for class C when the object in question is of class B. Is this realizable?

2nd Question: I have a derived class that uses a search function defined in an 'inaccessible' linked-list base class. By inaccessible, I mean I cannot change the contents of any of the member functions of this base class. The search function has three cout statements that print string literals showing results of the search operation if:

a. list is empty
b. search item is found in the list
c. search item is not found in the list upon searching

I am seeking a scheme whereby, instead of displaying the results of the search operation on the standard output (i.e. screen), a function I write can capture these string literals as input parameters, and process them for a Boolean value return. Is it possible to preclude the printing of the literals on the screen in this manner?

View 5 Replies View Related

C++ :: Overloading Operator With Container Or Pointers

Mar 2, 2013

I have a class:

class Foo {
private:
MyType* things[10];
};

While I would like to overload the [] operator for the use as this:

Foo myFoo;
myFoo[0] = myFoo[1];

Right now I am getting ugly:

MyType** operator[](size_t idx) { return &(things[idx]);
//...
*(myFoo[0]) = *(myFoo[1]);

Anything to fix that up a little?

View 1 Replies View Related

C++ :: Overloading Stream Extraction Operator?

Oct 1, 2013

I wrote a class that can display fractions ex. 1/4 and I cannot figure out how to get >> to process 1/4 and separate them into variables numerator and denominator.

my program just constantly creates RationalNumber Objects when it reaches cin >> A .

my overloaded stream extraction function:

istream& operator >> (istream& in, const RationalNumber& rn)
{
char L;

[Code].....

View 1 Replies View Related

C++ :: Overloading Operator For Complex Numbers

Jul 14, 2013

I have a program written to add 2 complex numbers. Everything is working, except when the sum gets written, it gives me a number that is way off.

#include <iostream>
#include <complex>
#include <fstream>
#include <cstdlib>
#include <math.h>
class complex {
public:
complex();
complex(double r, double i){

[Code] .....

And my output ends up being Enter a complex number (a+bi) :

1+2i
Enter a complex number (a+bi) :
2+3i
x 1+2i
y 2+3i
4.8784e-270+4.85593e-270i

View 12 Replies View Related

C++ :: Vector Subscript Operator Overloading

Jun 24, 2014

To get a value I would always use setter and getter. Would it be much better (performance) to use vector subscript operator overloading? And does vector subscription operator overloading require a size for the vector?

vector<int> v(10);

because otherwise, it doesn't work...

View 9 Replies View Related

C/C++ :: Copy Constructor And Operator Overloading

Nov 5, 2014

I'm working on a project and I'm not quite sure how to implement the Copy constructor and Overloaded assignment operator.

This is what the instructions say if that matters at all: Since you have dynamic variables in your class, you should make sure that the big three are implements. You already have the destructor, but you will need to add a copy constructor and the overloaded assignment operator. This is simpler than it sounds, but it requires some thinking. You need to make sure that both the copy constructor and the assignment operator create new containers.

Here is my header file:

#ifndef CANDIDATELIST_H
#define CANDIDATELIST_H
#include "CandidateType.h"
#include <iostream>

[Code].....

I know I don't have much in these functions but I'm not sure how to apply them or if I'm even headed in the right direction.

View 14 Replies View Related

C/C++ :: Overloading Input / Output Operator

Dec 24, 2014

#include <iostream>
using namespace std;
class Date {
private:
int month, day, year;
public:
// class constructors can be overloaded
Date(int m, int d, int y) {

[Code] ....

Actually ,I'm not sure whether my understanding of operator>> function is correct. Here is my understanding of operator>> function.....

operator>> function takes Date object as argument from main function and it reads data from the console using istream(This is all I know about istream) into the new Date object which is created by operator>> function..

This is all I know about operator>> function...I really don't know why it has to return istream reference(I know the return type is istream, but other than that ? I want to know why operator>> function creates new Date object ? It already has a reference to Date object ....why not simply set the values of the already existing Date object instead of creating one..?

View 4 Replies View Related

C++ :: Operator Overloading And Friend Functions

May 3, 2013

Can an overloaded operator be a friend function?

View 7 Replies View Related

C++ :: Operator Overloading In Inherited Class

Jun 2, 2013

So i am having troubles with operator overloading in inherited class. Basically, it doesnt work. Consider this:

Code:

class A {
public:
A() {
x=0;
z= new int;

[Code] ....

Some how the copy constructor of a is improperly executed - the pointer is copied over, not re-created. As a result, the destructors crashes due to double-free.

*/
B bb = b; //doesnt work
B bbb(b); //doesnt work
B bbbb(b, 0); //works
}

Above code shows the problem well. The "official" copy-constructor wont work - it copies over the pointer directly, and doesnt create a new one as it should. However, if i provide my own pseudo-copy-constructor that works. But ofcourse it's just a cheap work around - and wont actually work in real code (STL).

compiler is VS2008SP1.

View 11 Replies View Related

C++ :: Postfix Operator Overloading Error

Jul 27, 2012

Recently, i successfully overloaded postfix operator to class counter by using Object and Class. Now, i want to overload same postfix operator to Inheritance. I created my code and generated in compiler. But, my compiler signaled me uncommon error(saw first time) and i couldn't generate any idea where my actually mistake is.

Here is my Code which objective is to count the number increasingly or decreasingly as per object created of CountDn class.

Code:
#include <iostream>
using namespace std;
class Counter // base class
{
protected : // NOTE : Not Private
unsigned int count;

[Code] ....

Error :|41|error: no 'operator++(int)' declared for postfix '++', trying prefix operator instead|
|42|error: no 'operator++(int)' declared for postfix '++', trying prefix operator instead|
|42|error: no match for 'operator=' in 'c2 = c1.CountDn::<anonymous>.Counter:perator++()'|
|44|error: no 'operator--(int)' declared for postfix '--', trying prefix operator instead|

View 10 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved