C++ :: Bad Value Result From Operator Using Objects
Jul 24, 2013
I keep getting an undesired value in this code. I've tried several methods, but none are giving me the correct answer. The out put is always zero, when in this case it should be 10!!
Here's the object structure:
template<class T, class _b>
struct quantity {
private: T value;
public:
explicit quantity(T val): value(val) {};
T getValue() { return value; };
[Code] .....
Here's the operation:
int main() {
quantity<int, bool> m(20);
quantity<float, bool> m_f(10);
quantity<double, bool> m_d(NULL);
m_d = m_f;
[Code] .....
Why does it seem that the assignment operator is the harder operator to overload? Maybe it's just my luck, but I seem to always run into issues whenever I work with it. I hardly ever experience errors when overloading any of the other operators.
View 6 Replies
ADVERTISEMENT
Sep 19, 2013
trying to understand operator overloading, and i wrote some code just to define a "-" operator to do a simple subtraction. SO, i wrote a program that can perform a subtraction between two objects and put the result in the third object. now I Just cant show the result on the console. And also can anyone define the meaning of [b1.x], like I want to know am I assigning the value to the "b1"object or the x variable? This is a very concept that I need to understand.
#include<iostream>
using namespace std;
struct Ok
{
int x;
int y;
};
Ok operator-(const Ok& a , const Ok& b)
{
Ok result;
result = (a - b);
return result;
}
int main()
[Code]...
View 2 Replies
View Related
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
View Related
May 23, 2013
I designed a class template to create unique arrays. I was able to successfully input data to and output data from my array objects, irrespective of the datatype. However, I can't for the life of me fathom why my overloaded assignment operator worked perfectly well only for integer datatype and not for double/string datatypes.
Here is the class definition:
template <class dataType>
class myArray {
public:
void setArrayData();
[code]....
And here is the definition of the overloaded assignment operator:
template<class dataType>
const myArray<dataType>& myArray<dataType>::operator=(const myArray<dataType>& rightArray) {
int i;
if(this != &rightArray) {
delete [] arrayPtr;
[Code] ....
And here is my main function that tests the operations on objects of the class:
int main(){
//object declarations
myArray<double> list(5); //a single-parameter object declaration of class myArray
myArray<double> myList(2,13); //a two-parameter object declaration of class myArray
[code]....
The problem I'm having starts from where the assignment operator is being tested: for double and string datatypes, the upper input/output section works fine, but the assignment section freezes the display until the program execution is manually terminated!
View 19 Replies
View Related
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
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
Mar 7, 2013
Here is the code:
// Creating and joining string objects
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::getline;
// List names and ages
void listnames(string names[], string ages[], size_t count) {
[Code] ....
I may be wrong, but the problem seems to be in the function "listnames". Specifically, the output statement inside the while loop. I don't understand , how the ++ operator is behaving in this statement. The output produced does not match what's printed in the book. I usually just type all the examples, but with this one I also downloaded the source code from the book's website to make sure the error wasn't due to mistyping.
View 4 Replies
View Related
Mar 22, 2013
I'm doing a refresher for C++ and have gotten to operator overloading. I'm trying to perform an operator overload with the insertion (<<) operator, but I have encountered a problem.
Here's my class [In a header file "Shinigami.h"]
#include<string>
namespace K{
class Quincy;
class Shinigami{
friend std::ostream& operator<<(std::ostream&, const Shinigami&);
[Code] .....
If the operator function is a friend of the 'Shinigami' class, why doesn't it recognize any of it's private members? I need it to be in this file because I'm doing a bit of association with the 'Quincy' class.
I thought it was the namespace, but I included that.
View 9 Replies
View Related
Nov 12, 2014
This has been bothering me for a while now, and I finally put together an example:
#include <iostream>
#include <string>
using namespace::std;
[Code]....
In the code above, the two classes hold pointers to each other, and that's fine but it doesn't seem right since C++ prefers to pass by reference. Yes, it can still do that (see testbox and testball) but even that seems odd to me because still you need to use pointer notation for the enclosed object. Am I the only one who feels this way, and should I just get over it? Or am I missing something that would allow an object to hold a reference?
View 4 Replies
View Related
Apr 30, 2013
Code:
void search(){void output(void);
char title[20],;
char *p;
clrscr();
[Code] ......
Info:Program that stores information about reports .the above function searches the report according to its title. list is the name of the structure that stores the records.
Why i'm using strstr:
for eg. there is a report titled 'report on tigers'
I want the report information to be output if someone searches for 'tiger'
Output:displays all the entries i have made till now
file is attached.
View 4 Replies
View Related
Dec 4, 2014
I'm trying to understand the pass by value-result. The code I have came up with so far only does by value and by reference, which I understand. The value-result is what has me stumped, and honestly I am unsure how to write the function for it. Here's my code so far...
#include <iostream>
using namespace std;
// Function prototypes.
void swapByValue(int, int, int);
void swapByRef(int&, int&, int&);
[Code] ....
View 4 Replies
View Related
Nov 6, 2014
I am trying to make the code below display the result with decimals. I tried using setprecision, but I am not too sure where to put it. I placed it in cout section where the answer is but it still doesn't come out correctly.
#include <iostream>
using namespace std;
//*Delcare function prototype*
int ConvertToCentimeters (double, double );
//declare exception class*
class NegativeNumber
[Code] ....
View 4 Replies
View Related
Apr 20, 2013
typedef struct Element Element;
struct Element {
char x;
double* y;
[Code] .....
This one with y pointer gives 8
typedef struct Element Element;
struct Element {
char x;
double y;
[Code] ....
This one with a normal y variable gives 12
View 7 Replies
View Related
Nov 19, 2014
how to use the result of an if statement in my program. I'm writing a program for a knockout tournament, so i want to extract the winner of each match to carry forward in the code for use in the next round. I've tried assigning another variable (#define r1w1) and saying that the variable = cName[0] or cName[1] in the if statements like this: (i did this because i thought i could then use r1w1 later in the code)
if(scorea1 > scoreb1) {
printf("
");
printf("WINNER OF ROUND 1 MATCH 1 IS %s
", cName[0]);
cName[0] = r1w1
[Code].....
View 1 Replies
View Related
Oct 21, 2014
I am creating a program that allows the user to enter the number of days worked and calculates the amount of money gained by doubling the amount from the previous day, starting with .01 cents. The program works fine except for in day 3, the program adds .01 along with doubling the amount from day 2. Also I must use a List Box.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
[code]....
View 3 Replies
View Related
May 5, 2013
i need to know, that how i can get search result in bold format(using sequential search technique) from an array, in C++ graphic mode ???
e.g.
here is an array : 2 4 5 34 0 -45
and search key == 34
when it found 34 in array, '34' should bold to be prominent.
View 3 Replies
View Related
Sep 27, 2014
I'm trying to messagebox the cURL result:
Code:
CURL *curl;
CURLcode res;
curl = curl_easy_init();
[Code]....
Is there anyway to messagebox the res value ?
View 2 Replies
View Related
Oct 12, 2013
I am trying to compare 2 strings of characters The users input containing 5 chars is compared to a table If the input is already be existent in the table the index of those chars in the table is printed Quest: how to copy the result of a printf() into an array ? The last printf() gives a sequence of numbers and I am trying to save that sequence to another array for further operation ! I have not been able to do that so far even with tmp[]=i ;
Code:
#include <stdio.h>
#include <string.h>
#define N 30
#define n 100
int main (void)
[code]....
View 2 Replies
View Related
Apr 2, 2014
I am having a problem using fprintf. I have a function which flips a coin. Heads prints a text to the screen. Tails prints a different text to the screen. My problem is getting the result to print to a text file.
Code:
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
void seedrnd(void);
int coinflip(int small, int large);
}
[code]....
View 12 Replies
View Related
Jun 20, 2013
i use dev c++...i write this code to reverse an array and save the result in the same one
if n=3 i expect
a[0]=0 a[1]=1 a[2]=2 (before rev is OK but after calling rev)
a[0]=2 a[1]=1 a[2]=0 (expected result )
but i get
n=3
[code].....
View 4 Replies
View Related
Jan 21, 2014
I'm making a simple calculator and have done it all right where you can input everything, all the functions are there, but when i run the program it will come to displaying the result and it will always equal zero, I just need it to say 8+8 = 16 rather than 8+8 = 0, i don't know whether its just displaying the results as 0, or not displaying it at all, the code will follow below:
Code:
#include<iostream>
using namespace std;
double num3;
double num2;
double result;
char operation;
[Code] ....
View 4 Replies
View Related
Dec 11, 2013
So I want to go from having 0 or 1 to having words like false or true. I did it with an if statement earlier today, but I had to get rid of the whole bool thing. I made the variable just a float. But he requires we use bool. Here is my code:
Car y;
cout << "Initial value for the Car: " << endl;
cout << "Age= " << y.getAge() << " years old. The Price= $" << y.getPrice() << endl;
y.setAge(8);
y.setPrice(12000);
y.setRaceCarStatus(true);
cout << "Modified value for the Car: " << endl;
[Code]...
I commented (//) the if statement that I had earlier. If I set RacecarStatus to True, is cout's 1. The starred (*) line right above the comments is the line that I was required to add. I want to cout the actual word true. The one I had this morning won't work anymore.
View 1 Replies
View Related
Feb 20, 2014
I do not have code - I am just wondering if I have a method which gets input from the keyboard and returns it, how would I store that information in a new method after calling it and put the result of it into an array.
View 3 Replies
View Related
Nov 2, 2013
why my application actually crashes after it compute the area of a cross.
I output is correct but it crashes after it calculation is done.
cross.cpp
void Cross::setCrossCord()
{
for (int i=0; i<=12; i++)
[Code]....
View 2 Replies
View Related
Jun 30, 2014
The results of my code is supposed to be very simple: return the 2 integers and then their sum. However, it's doing returning the first value, then an address in memory(rather than the 2nd value), and then the 2nd value(rather than the sum). Here is the code:
#include <stdio.h>
#include <stdlib.h>
struct calculator{
double num1;
double num2;
double result;
[Code] .....
View 4 Replies
View Related
Oct 30, 2014
I'm doing a bitwise operations on 2 bytes in a buffer, then storing the result in a variable. However, I sometimes get a non-zero value for the variable even though I'm expecting a zero value.
The relevant portion of the code is as follows.
unsigned int result = 0;
long j = 0, length;
unsigned char *data;
data = (unsigned char *)malloc(sizeof(unsigned char)*800000);
[Code] ......
I'm expecting result to be zero when my data[j] and data[j+1] are 0xb6 and 0xab respectively, which is the case for most of the time. However, for certain values of j, my result is strangely not zero.
j = 62910, result = 64
j = 78670, result = 64
j = 100594, result = 64
j = 165658, result = 512
j = 247990, result = 128
j = 268330, result = 512
j = 326754, result = 1
j = 415874, result = 256
j = 456654, result = 1024
j = 477366, result = 512
It appears that these strange result values are all powers of 2, with a 1 bit appearing somewhere in the unsigned int.
I'm not changing the value of result anywhere else in the code, and when I print out (unsigned int)(((data[j]^0xb6)<<8)|(data[j+1]^0xab)), I get 0, but somehow when it gets stored in result, it's no longer zero.
View 3 Replies
View Related