Programe #1 // file.h class File { public: static const int var = 9; };
[Code]....
Program#1 is running fine, but program#2 gives linker error:
error LNK2005: "int GlobalVar" (?x@@3HA) already defined in file.obj
I know the header files are never compiled. Then in the above case, how the compiler knows the definition of variable var, but not able to find the definition of GlobalVar? What is the difference between this two programs?
I've been trying to store the inital size of a list in an int variable, so I can access it later in case I modify the list size. For example, I did the following:
std::list<AType *> myList; myList.push_back(anATypeobject); int initListSize = myList.size(); //initial list size myList.push_back(anotherATypeobject); myList.push_back(yetanotherATypeobject); while(myList.size > initListSize) myList.pop_back();
What this is supposed to do is to get an initial size of a list, and then be able to return to that initial size. However, when I try to do it in my code, initListSize always change if myList.size() changes. Is there a way to change that?
if ( creal(phi[i]) < 0.0 ) i_phi [i] = 0.0; if ( creal(phi[i]) > 1.0) i_phi [i] = 1.0; }
[Code]....
Printed numbers are showing a lot of fluctuation around limits eg, 1.00542, 1.0002 and -2.45829e-12.
I really have no idea why the limits are not applied for a lot of cells but my guess is that it's a problem from the CREAL function. Also I've changed the CREAL with __REAL__ but still the same problem shows up.
If I DEFINE a global variable in two source files which belong to the same project, then there is a linker error "multiply defined symbols". But if I DEFINE a global variable in two source files which belong to the different projects, then it compiles fine. Why?
The question is: Define the class Counter. An instance of this class is used to count things, but the counter should never be less than 0 (non negative number). The member variable should be private. I realize what I'm suppose to be using but can't implement the member functions needed..
int main(){ int value; cin >> value; Counter myCounter(value); for (int i = 1; i <= MAXLOOP; i++) { myCounter.increment();
I've been given specific instructions to create an array inside a Class Matrix using a constant n. This is my class but I am getting errors. I thought that maybe I had to initialize the const and the array using the constructor function Matrix() instead of directly in the class, but I didn't have any luck with that either.
class Matrix { public: Matrix(); private: const int n=3; int e[n][n]; };
At the moment I am making program that will use a 2d selection of "cells" to make a "map" of sorts. However, the size will not be known until run time.
I figured using an array would good, because once the size is chosen it won't be changed. However I can't create an array without using a constant.
So the first question is, can I create a constant at run-time with a user entered value that can then be used for an array size? If so, how?
Otherwise, what are my options to achieve this? I know vectors can be used, but A, my compiler keeps giving me problems even when C&P some code bits (yes I even remembered to #include and such) and B, I noticed that vectors reserve extra memory for when the size changes but this is bad (well my dinky little program won't notice, but trying to set good habits as I learn, so I'm keeping it in mind) as I don't need and don't want to allow the size to change after creation.
Which leads to number three, if I do have to use vectors, how can I prevent any accidental size changes after the initial size is determined?
What is the problem with the following code is? It compiles with Visual C++ 2012 but does not with g++:
//a.h
#ifndef Loaded #define Loaded using namespace std; class MyClass{ public: static const int MyStaticValue = 200;
[Code] ....
If I try to compile this using the command
g++ a.cpp b.cpp
I get an "undefined reference to 'MyClass::MyStaticValue'" error for the line "A = MyClass::MyStaticValue;" in main(). The strange thing is that if I change the line to "A = (int) MyClass::MyStaticValue;" it works fine and the output is
200 200
as expected.
The code also compiles under g++ if I move the defintion of MyStaticValue from a.h to a.cpp by const int MyClass::MyStaticValue = 200;
Well, basically, what I've been doing was creating a class that would implement the concept of Double Linked List, but that would behave like a queue ( the STL implementation is deque, or Double Ended Queue ).
The problem occured when I have been trying to generalize the class using templates. I mean, why use only integers ? Why not double or char or what not ?
Worked perfectly before including all the template stuff..
// Source.cpp <=> Main.cpp #include <iostream> #include "DList.h" using namespace std; int main(void) { DList<int> *list; list = new DList<int>();
[Code] .....
The errors returned by the compiler:
Error1error C2955: 'Node' : use of class template requires template argument listc:usersjumperdesktopc++ otherdouble linked listdouble linked listdlist.h6 Error2error C2955: 'Node' : use of class template requires template argument listc:usersjumperdesktopc++ otherdouble linked listdouble linked listdlist.h6
Any way to create a variable using a variable in the name? So E.g. if you wanted to create an int named nr(x), and x was 1, you would get an int variable named nr1? How would you do this?
I am writing a math program, using variables of type double, and had initialized all variables to 0.0.
I now realize that not all results will be valid.
Is there a way to explicitly assign a variable of type double a non-numeric value, for example, "NaN", "Undefined", or "Unassigned" or something like that?
That way, when I read through the printout of results, I will realize the "NaN" results indicate a valid solution was not found. Whereas a 0.0 might not stand out.
I'd hate to have to go back and delete the initialization, and then re-assign 998 values just for the sake of 2 non-solutions.
I'm having some trouble with a variable from a database. That variable in that database is of type double.
To read from the database, I'm using a variable dr of type OleDbDataReader.
So far, I've been using dr["variablename"].ToString() to work with the variables from this database - without the ToString part it wasn't working.
However, with this specific variable (I'll call it "var"), I have to do numerical comparisons of >= and <=, so obviously, just using dr["var"].ToString() doesn't work.
Therefore, I tried creating a variable of type double called varConv and setting it as
That doesn't work, gives me an error message saying "Input string was not in a correct format". If I remove the ToString part, it also doesn't work, with a different error message saying "Object cannot be cast from DBNull to other types".
Trying to do a direct comparison, as in dr["var"] >= x also doesn't work, says "Operator '>=' cannot be applied to operands of type 'object' and 'int' ".
I have defined a class in a header file; just the class, no templates involved. I have a program where I'm reading in data in string format. Each string consists of a word, a delimiter, and a variable name. Example:
cajun/mustard
I want to take that string and make it the variable name of that class type. It would be implemented along the lines of:
Code: string str; //read/process string here, get: str = "mustard"; createName(str); //pass string to creator function When the function is called, I should get the variable: Class mustard;
Thing is, I'm not supposed to know beforehand what the variable names are, only that I create them as they are read in. It could be mustard, it could be Maynard_James_Keenan, it could even be bazinga.
My problem is, what do I do for createName()? I've looked into the concepts of pairing, Factory implementation, and maps, but I don't think they answer my question.
(P.S. if I run into the same variable name being read in twice, what steps can I take to make sure that a duplicate variable isn't created? Do I need to add in code, or does the compiler know to watch for multiple variables of the same name?)
How do you prompt the user to enter the number of elements for the array and use that information to creatr a variable length array? And then how do you prompt the user to enter in a number for each element of the array and scan in the appropriate numbers? the numbers are double precision floating point.
for example, Enter the numbe of elements in the array: 3 Enter element 0: 3 Enter element 1: -1 Enter element 2: 4
I know it starts with
int main() { double N; int a[size];
printf("Enter the number of elements in the array:" ); scanf("%f", &size);
I'm attempting to split a large binary file into smaller manageable files for analysis. I've written most of the software but I'm stuck in a couple of places.
1. The binary file is split by looking at a couple of bytes to determine when to create a new file or continue appending to the current new file. The question is when I need to create a new file, how can I dynamically sign it a name? My intention is to rename each subfile by: "original_name" + new section id + ".log".
2. The start of each section is determined by a specific pattern (6 bytes of FF's). I'm running into an issue where the pattern check is checking for 5 bytes instead of 6 because the for..loop doesn't increment for one instance.
I want to be able to then use the file stored in pedoFile in the cpp of another class called PlayButton. I tried doing this with a pointer? not sure if that's correct way of doing it (i know very little about C++ or programming) by changing the function to this. I'm getting the error invalid initialisation of non-const reference of type 'juce::File*&' from a temporary of type 'juce::File'
#include <iostream> // For stream I/O using namespace std; int function(int a) { return a; } int main() { function(int b); }
Why is creating a variable inside the function argument list not allowed. Any reason other then for the language syntax or just for the language syntax?
Depending on the message ID different messages represent different values for one project.For example msg with ID 10 can include in the 8 bytes something like:
Printing the message is no big deal. But here comes the tricky part. I want to print out the specific information hidden in the 8 bytes. I can define the structures for every msg ID and compile the program with this "special" header file, but I want to do it during runtime of the program, loading the information regarding the msgs, because i can have different projects where the information for different msg IDs can differ.
I've a non-C file, where basically all the information is written. Lets stay frame named
GetStatus{ bit 0 - 7 width bit 8 - 15 height . . } etc.
How to read it on runtime and decode the messages? On runtime I'm not able to create variables and structures anymore!
I'm expected to get a starting minimum input, and also an ending maximum output (for example: 21, and 25). From here, i have to give output using all the numbers (in a row) between the min and max numbers.
(for the same example: 21 22 23 24 25)
I assumed I would want to create an array using a variable, but i'm not sure of that either.
I have a semi-working program for doing this task. Here it is:
char c = 0, flag = 0, c_ = 0; while ((c = getchar()) != '.') { if ((c >= '0'&& c <= '9') && (c_ <'0' || c_ >'9')) { if (c == '0') flag = 1; } else putchar(c);
[code].....
But when I enter "000000a123000500" the program returns "0a23000500" instead of "0a123000500". Please change my program to have it do what it need to or give me some hint. Using getchar and putchar only! No massives and pointers!