I have two possible questions; can you use a ternary operator to initialize objects with overloaded constructors like
class thing { int x; int y;
[Code].....
I can get around it if I need to but I'd like to learn more about the ternary operator if I can, since I couldn't find anything online that addressed this particular issue, at least in a way I could detect.
#include<iostream> using namespace std; class Cents { public: int m_nCents; Cents(int nCents=0):m_nCents(nCents){ cout<<"Calling normal constructor with value:"; m_nCents = nCents; cout<<m_nCents<<endl;
[code].....
Question is :Why is the overloaded copy constructor that I have written not getting called here?Internally default copy constructor is getting called.Thats why we get value of obj2.m_nCents as 37.
I am currently practicing designing classes. In one exercise, I am trying to store 15 words in an array, and randomly print one (using the rand() functions and seeding it with crime. I have a header file, a respective .cpp file, and a main .cpp file. When I try to compile the code using g++ GuessWord.cpp UseGuessWord.cpp -o UseGuessWord, I get the following error in my constructor: expected primary-expression before ‘{’ token
i am writing this bank accounts program using structures. i haven't implemented the function before that i want to check if the data is being read and printed. When i build and run the program in visual studio it gives me the following error. "No constructor could take the source type, or constructor overload resolution was ambiguous". Now whats wrong in this program?
/* Bank Accounts Program */ #include <iostream> #include <string> #include <fstream> #include <cstdlib>//needed to use system() function using namespace std; const int MAX_NUM = 50; struct Name{
I am currently having trouble to have getline to read line from the file. Error is: "no instance of overloaded function "getline" matches the argument list"
code is as follows:
std::ifstream config("config.txt"); string process[4]; int linecount = 1; if (config.is_open) { while (config.peek() !=EOF) { getline(config, process); linecount++; } }
What I'm trying to do is create a class for constructing an 'op tree' for parsing infix notation.
I started with a base class that uses a map of lambdas to actually calculate the operations (since they are mostly 1 line functions) of passed in integer or float values.
This base class just uses a templated T type as the lvalue and rvalue. I realized though that if I overload the math operators, +, -, etc.. I could also use the class itself as a type for the lvalue and rvalue. This lead me to think I could easily create the op tree by using Operation class members themselves as operands, which I think makes sense but I'm having some trouble expressing the code.
Example, if you look at the main() function I create normal operations easily with integer values. I then try to create a "tree" operation that includes 2 sub-operations as it's rvalue and lvalue, that is where I'm having some conceptual problems as far as implementing the code to do that.
why can't << operator be overloaded as a member function is it because that is the way c++ is written and you just can't or is there another reason because I'm confused.
I'm having an issue with output, luckily everything else works!! I'm working with Mixed Numbers and operations on them. So, here's the code I'm testing with:
I keep getting this error in my code. I believe it is because to use pow(x,y) both x and y have to be double, but how do i put that into my formula under calculations?
#include <iostream> #include <cmath> #include <iomanip> #include <string> #include <fstream> using namespace std; int main() { // Declaration section: Declaring all variables.
I've got the following code with output. I can't figure out myself why it's what printed out there. I believe, it has something to deal with overloading/overriding/virtual functions implementations in C++:
class Base{ public: virtual void f(int); virtual void f(double); }
[Code].....
Thus here're my conclusions: 1) in line d.f(1.0); for some reason compiler preferred casting double->int of the argument and then call to 'Derived::f(int)'.
2)in line pb->f(1.0); for some reason compiler preferred call to 'Base::f(double);'. 'Base' is static type of pb, but the dynamic type is 'Derived'.
I believe the answer has to deal with the fact whether virtual table contains in addition to functions' names also the types of arguments they accept. AFAIK, vTable doesn't include such info.
I believe I have the syntax correct but I'm having difficulty calling my overloaded == operator in main (last snip-it of code). Below are several files explaining the code.
Commission.h here is where the friend bool operator == exists and I believe I have it initialized correctly.
#ifndef COMMISSION_H_INCLUDED #define COMMISSION_H_INCLUDED using namespace std; class Commission {
I have 2 header files one contains my personType class which works independently as I created it for a previous lab and a binarySearchTree<Type> which allows you to create and do various functions with binary search tree's like inserting, searching,and deleting. Which also works independently usings numbers and strings. But when I have combined the 2 trying to make a binary tree of type personType I am running into this problem I can't seem to figure how to fix. The entirety of my code is provided for these 2 header files.
Error1error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::istream' (or there is no acceptable conversion)
I'm using some overloaded operators (addition, subtraction and variants of) in part of my final major project and, when coming to test it, I've noted that they appear to be killing my pointers eventually.
I say pointers, it's always the same one. But I have isolated it to being the operators. The only two I'm really using are += and -=, though I've defined the others for consistency.
Either A ) what it is I've done wrong (if I have) or B ) why I would see this behaviour. Or, you know, if there's something glaringly obviously wrong with the code that I'm glossing over.
Code is as follows
#pragma once #include "stdafx.h" namespace gunpei { /** A paired register in the form of r1r2 Enables using two separate arrays for register processing provides logic for assembling pair and breaking back into individual registers */ class GBPairedRegister {
I need to return taxes paid and net pay by pass referencing a gross pay overloaded function. Are the values returned from calling the overloaded function file stream objects? Can they be passed simply through a pass-by-reference function?
//Read Data from File, gather info and calculate pay, output data to file while(counter < x) { inFile >> last_name >> first_name >> hours_worked >> hourly_pay; outFile << first_name << " " << last_name << " "; outFile << calculate_gross_pay(hours_worked,hourly_pay); counter++; outFile<<endl;
I am working on a school project and am stuck in the debugging. I am compiling with g++ and am using c++11.
Error message
In file included from /usr/include/c++/4.7/algorithm:63:0, from date.h:7, from date.cpp:1, from schedule.h:1, from schedule.cpp:1, from date_driver.cpp:1:
[Code] ....
Here are my overloaded operators for my date class.
Im trying to create a map container with the key being an ID number and the value being a pointer to a class object. Currently Im creating objects and storing their address in the container. I am getting a runtime error when calling the virtual method with this pointer. I believe that the problem is being called because they aren't being called pointer/reference. let me know if you need more.
Constructor of the Base Class Person::Person(char* n="", char* nat="U.S.A", int s=1) { name = n; nationality = nat; sex = s; }
Constructor of the Derived Class (inherited from the base class)
Student(char* n, int s=0, char* i=""): Person(n, s)
Why the initialized list of the base class constructor doesn't match the initialized list of the derived class constructor? I know this book is a little bit old, I'm not sure if this wrong in VC++ 2010?
#include "tensor.h" int main() { Tensor<2,-2> m = {{1,2},{1,3}}; Tensor<2> v = {1,5}; std::cout<<m*v<<"
[Code] ....
Why do I get an ambiguity and why is not the wanted operator*-overload (the last one in the tensor.h file) not even mentioned as one of the candidates? Is it clear what I want to do? And if so, what can I do to make the call unambiguous?
I can't seem to figure out whats causing this error: statement cannot resolve address of overloaded function . Error is before line 14 in bubblesortrand function. Thnx in advance.
void bubblesort(int num[], int a_size) { int i, j, temp; for(i = (a_size - 1); i >= 0; i--)