C++ :: Passing Polymorphic Vectors?

Jun 4, 2013

this time I have an ACTUAL polymorphic problem.

void func(std::vector< BaseClass* > A){}
std::vector< SubClass* > B;
func(B); //Compile error C2664

I get an error like so:

void func(std::vector< BaseClass* > *A){}
std::vector< SubClass* > B;
func(&B); //same error

The error is summarized here:[URL]

View 12 Replies


ADVERTISEMENT

C++ ::  Passing A Polymorphic Array Entry

May 31, 2013

I'm having an issue during the linking stage of the .exe during compile time, and it's because of a call to a function with a polymorphic parameter.

//here's how the classes are setup
class grandpa {};
class mom public grandpa{};
class dad public grandpa {};

[Code]....

dad has sons in the vector and mom has daughter in the vector. What I want to do is have a function that can accept either of these vectors as one parameter like so: void func(const grandpa* aObject);

Finally, I have an error when I pass an object to the function like so: func( d[0] );

View 1 Replies View Related

C++ :: Passing Vectors To Functions As Arguments By Reference And Value

Mar 12, 2014

I have a program that is working very well when I pass C++ vectors as arguments to my functions by reference, but I get some compilation errors when try to make a modification. I am also posting the entire program and its output below. so that you can see what is going on. I have commented out the line that causes an error.(Some of the indentation that got corrupted when I copied the code to the browser.)

This program basically calculates the coefficients of a least square polynomial and then evaluates this polynomial at artificial data points and verifies that this actually reproduces the original data within reasonable floating point error.

The function that computes the coefficients of the least square polynomial is Code: vector<double> LSPVecValued_GSL( const int, const vector<float> &, const vector<float> &); and as you can see it returns a vector by value, and this vector contains the coefficients of the least square polynomial.

There is also a function that evaluates this polynomial by accepting a vector argument by reference : Code: float evaluate_polynomial(double, vector<double>& ) ; I have also created another version of the evaluation function which accepts the same vector argument by value: Code: float evaluate_polynomial_ByValue(double t, vector<double> vec_a) ; In the program I call the first evaluation function (whose vector argument is passed by reference) by first using an intermediate vector variable containing the coefficients, and then I pass this vector as an argument to the evaluation function, as follows:

Code:
vec_a = LSPVecValued_GSL( deg, vec_x , vec_y);
for(int j=0; j< n ; j=j+20 ) {
cout<<"x["<<j<<"] = " << vec_x[j] << " ,y["<<j<<"] = " << vec_y[j] <<" , p(x["<<j<<"]) ( EVALUATED FROM REFERENCE) = "
<< evaluate_polynomial( vec_x[j], vec_a) << endl; // This version works without error

[Code] .....

As you can see above, I am also able to call the second evaluation function (the one whose vector argument is passed by value) directly by plugging in the function LSPVecValued_GSL"(...)" and this works without error, and this is a one step process, only one line of code is involved.

However, I get a compilation error (line number 12 that I have commented out above) if I try to plug in the function "LSPVecValued_GSL(...)" into the first evaluation function that expects a vector argument by reference. I tried to put a "&" in front ofLSPVecValued_GSL but this did not fix the bug.

What syntax is appropriate to use the first evaluation function (which accepts a vector argument by reference) if I want to plug in the vector-valued function LeastSquarePolynomial_GSL directly in the the first version of the evaluation function which expects a vector argument by reference?

View 14 Replies View Related

C++ :: List Of Vectors (vector Of N Vectors Of M Elements)

Mar 19, 2014

I create a list of vectors (a vector of n vectors of m elements).

std::vector <std::vector <int> > vsFA (n, std::vector<int>(n));

How I assign values? I try below, but not worked

void armazenaFA( std::vector <int> &vFA) // this function only knows about vFA
{ vsFA[n] [m]= simTime().dbl();
OR
vsFA[n].push_back(simTime().dbl());
}

View 1 Replies View Related

C++ :: Size Of Polymorphic Class

Nov 18, 2012

I did know that the size of a class is increased by 4 bytes (32bit compiler) if the class has a virtual function. I wrote one program and it is giving strange output. I am using linux g++ compiler.

The program and output is as below

Code:
#include<iostream>
using namespace std;
class Base {
public:
void fun() {

[Code] ....

output=4

Code:
#include<iostream>
using namespace std;
class Base {
public:
virtual void fun() {

[Code] .....

Output is 16

View 6 Replies View Related

C++ :: Loading Polymorphic Data From A File

Jun 11, 2014

What is the best / most efficient way to load polymorphic data from a file? I thought you could have an enumeration and for each item to load from a file you could have an integer at the start specifying the type of data, but I think there must be a better way I'm just not sure what.

Example of what I mean:

//The syntax isn't really that important for explanation
class base;
class a: base, b: base;
enum polymorphicType {
A,
B
};

and in the loading code you would have (this is the bit I think could be improved):

polymorphicType t;
File >> t;
if(t == A) {
newObject = new A;
} else if(t == B) {
newObject = new B;
}

I think there is probably a more efficient/better way of doing this I am just unaware of it.

View 4 Replies View Related

Visual C++ :: Polymorphic Methods In Abstract Class

Oct 2, 2013

Imagine if there is an abstract class with a method (say output or print) which would be inherited by a few other classes. Later objects are created using the inherited classes, and the user wishes to call the above method twice, for eg (i) output/print to screen and (ii) output/print to a file. What is the best way to achieve that.

View 6 Replies View Related

C++ :: Create Two Vectors And Then Loop Through The Vectors

Sep 19, 2014

This is probably a very basic question, but I need to create two vectors and then loop through the vectors and output each pair that is found.

The user will input min1 and max1 with step1 for the first vector and min2 and max2 and step2 for the second vector. Then the loops will go through and return the combinations will return each pair of the two vectors.

So if I input min1=1 and max1=10 and step1=1 and same for vector two the return would be:

[1,1]
[1,2]
.
.
.
[10,10]

This is for part of a homework assignment, but I can't continue on the assignment without first getting this simple part to work.

View 1 Replies View Related

C :: Create Polymorphic Linked List Library File?

Sep 10, 2013

Linked lists seem to be the most erroneous and most frequent thing I use and post about nowadays. I've been wanting to handle data structures in my own library of functions, but I'm not sure how to imitate polymorphism without too many ambiguities. I could just pass some character or string value to represent a type, but I wanted to see if there was actually something more elegant I could use before I dive in.

View 4 Replies View Related

C++ :: Simple System Management Console Application - Polymorphic?

Mar 16, 2014

I'm building a simple system management console application. I've abstracted the console "Menu" and derived from it a "WelcomeMenu" class with public inheritance.

The problem is that when instantiating a Menu* object and assigning it a new WelcomeMenu...I'm still not able to use WelcomeMenu's "ShowWelcomeMessage() with the Menu* object. Instead, I get "error: Class 'Menu' has no member function call 'ShowWelcomeMessage().' Which is true, but I thought a pointer-to-Menu object should be able to use the public methods of derived classes without casting in this case. Code follows.

// Menu and WelcomeMenu Classes
#ifndef MENU_H
#define MENU_H

#include <ctime>
#include <iostream>
#include <string>

[Code] .....

I get a compiler error when running this simple program:

#include <iostream>
#include <ctime>
#include "Utilities.h"
#include "Menu.h"
using namespace std;

[Code]....

View 2 Replies View Related

C++ :: Pass Pointer To Member Function (polymorphic Structure)?

Jan 3, 2015

I am trying to create a callback system for input events in my game engine.

Here is a cut down version of the EventManager.h file

#include "Controls.h"
#include "Object.h"
enum MouseEventType{PRESSED, POINTER_AT_POSITION, PRESSED_AT_POSITION };

[Code].....

This works if the function pointer being passed to the event manager is not a member function.

I have two other classes Scene and Object that could potentially use this EventManager to create callback events. Scene and Object are both pure virtual objects. How can I pass a pointer to a member function of the child classes of both Scene and Object? I am fine with just having two separate watchEvent functions for Scene and Object but how do I pass the type of the Object or the type of the Scene? The child classes are unknown as they are being created by someone using this game engine.

For example, if I want to make a player object it would be something like

class PlayerObject : public Object{...};

Now that PlayerObject type has to find its way to PlayerObject::functionToCall(). I think I need templates to do this but, since I never used them before

This is how I intend to use this

class OtherScene : public Scene{
void p_pressed(void){
//pause
}

[Code].....

View 6 Replies View Related

C/C++ :: Any Way To Have 2 Vectors Mix Together?

Mar 27, 2013

I want to add 2 vectors to print out so that there on the same line. What I am trying to make is an inventory system that will use 2 vectors to keep the pounds of the item and list the 2 vectors on one line.

(I am using Microsoft Visual C++ 2010 Express)

Like this:

0. empty 0
1. empty 0
2. empty 0

etc...

Right now it looks like this:

0. empty
0. 0

The code:

#include "stdafx.h"
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <cmath>  
using namespace std;  
int main() {
    vector<string> inv;

[Code] ....

View 14 Replies View Related

C/C++ :: How To Add Strings To Vectors

Apr 19, 2012

I have a vector I want to add book titles to, then i want to print my updated vector. This is best I have come up with but the program fails at the getline line. why?

string book;
cout << "Enter book to add: "<< endl;
getline(cin, book);
books.push_back(book);
for(int i = 0; i < books.size(); ++i) {
cout << i+1 << ". " << books[i] << endl;
}

View 1 Replies View Related

C++ :: Calculate The Angle Between Two Vectors

Feb 20, 2014

My question is not in c++ programing , but because my aim is to make code that calculate the three angles between two vector i ask my question here

So as the title i have three point that create two vector and I want to get the angles in x,y and z of the point2

I used crosproduct that give me one angle without axe , I don't know in which axe this angle

My aim is the three angles for the 3 axes ....

View 7 Replies View Related

C++ :: Manhattan Distance Between Two Vectors

Mar 25, 2014

I can't figure out the error in this code; it compiles but returns rubbish.

serge
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>

[Code] ......

View 7 Replies View Related

C++ :: Quaternion For Rotating Vectors

Dec 28, 2013

I try to use quaternion to rotate one(and later more!) 3d-vectors in a general manner.

i read in wikipedia, that the general calculation goes with:

vector_rot = quaternion * vector * quaternion_compl.conj.

I used the class of irrlicht [URL] .... to do the calculations.

there is no premade function in this class to rotate vectors through this quaternions, so i just tried to it this way:

irr::core::vector3df v1(1,0,0);
irr::core::quaternion a1(2,3,4,6);
a1.normalize();
irr::core::vector3df result2(a1.X*v1.X*(-a1.X),a1.Y*v1.Y*(- a1.Y),a1.Z*v1.Z*(-a1.Z));

result2 should then be the rotated vector, but it does not work. i dont know how to explicitely write down the rotation specification in this topic.

View 7 Replies View Related

C++ :: Using Vectors For A Clip / Cache

Apr 19, 2013

I'm trying to make it like a game. You would fire your gun, then have the option of reloading. If you run out of ammo and try to fire...it will automatically come out of your cache. Anyone who played a 3rd or first person shooter knows what I mean. I thought vectors would be the best course of actions since they can remove and add elements with ease. One of the many problems I have is subtracting the Hand Guns current ammo (size) from its maximum (capacity) to see how much to A. push_back into the clip and B. pop_back out of the cache. Can size() and capacity even be subtracted? Here's the code with what I believe to be all the possibilities.

#include<iostream>
#include<vector>
using namespace std;
int main(int argc,char** argv) {
vector<int> HG_cache (36,1);
vector<int> HG_clip (12,1);
char user_input;

[code]....

View 1 Replies View Related

C++ ::  NCurses Outputting Vectors

May 19, 2013

The following code works perfectly with "normal" C++

#include <iostream>
#include <vector>
int main() {
std::vector <std::string> hello {

[Code] ....

This prints "HELLO" on the screen. A function a bit more like NCurses is:

for (std::vector <std::string>::const_iterator it = hello.begin(); it != hello.end(); it++) {
std::string temp = *it;
std::cout << temp.c_str() << std::endl;
}

This still works with "normal" C++. Now, how do I get this working with NCurses? I tried

#include <curses.h>
#include <string>
#include <vector>
int main() {
initscr();

[Code] ....

But this just gives me an empty screen.

View 2 Replies View Related

C++ :: How To Compare Similarity Of Two Vectors

Mar 8, 2013

This is possibly more of an algorithm question rather than c++ related.Suppose I have two vectors:

std::vector<double> first = {1.0,2.01,3.05,4.05};
std::vector<double> second = {1,2,3,3,4}; // very similar except no decimals and a second "3"

And now I want an algorithm that will tell me how similar these two vectors are. That is, I want to know how much of first is similar to second.

View 6 Replies View Related

C++ ::  how To Use Push Back In 2D Vectors

Jul 31, 2013

I am trying to use push back in a 2D vector but I don't know how to. This is what I have:

vector <vector <BigInt> > matr;

for (BigInt i=0;i<rij;i++) {
for (BigInt j=0;j<kolom-1;j++) {
matr.push_back().push_back((i+1)^(pow-j));
}
}

I quickly invented something but that doesn't work obviously. it should be equivalent to this: (the only problem in the code below is that those indexes don't exist yet that's why I need push_back())

for (BigInt i=0;i<rij;i++) {
for (BigInt j=0;j<kolom-1;j++) {
matr[int(i)][int(j)]=(i+1)^(pow-j);
}
}

View 2 Replies View Related

C++ :: Deposit Vectors With Different Objects?

Nov 6, 2013

I my code i have a base struct ...

Then others structs made ...

struct base{};
struct a1 : base {
int a;
int b;

[Code] ....

Now i must deposit all these containers(maybe & of containers) in another vector...

How i can do that? Can i write

vector<vector<base*> > all;
all.push_back(&v1);
all.push_back(&v2);

View 14 Replies View Related

C++ :: Maximum Size Of Vectors

Dec 9, 2013

I have a vector of vectors declared as:

vector<vector<int>> v;

My program works fine with a small number of insertions to v. However, with a huge number of insertions my program stops working without telling me the reason... I guess that vectors might not grow after a certain size (im not sure)

1. What is the maximum size that a vector of vectors can grow?
2. I'm using Microsoft visual studio 2012, Is their anything I can do with the settings to increase the size of my vector? something beyond 1000000 rows?

View 6 Replies View Related

C++ :: Assigning Multidimensional Vectors

Sep 28, 2013

I've seen code examples for assigning 2 dimensional vectors, but I haven't seen code for assigning more than that. I tried to create a 3 dimensional vector, and the only code the IDE didn't complain about was

int x = 2;
int y = 2;
int z = 2;
vector < vector < vector <string> > >stringvec;
stringvec.assign(x, vector <string>(y), vector <string>(z));

Would this be the correct way of producting a vector[2][2][2]?

View 5 Replies View Related

C++ :: Step Two Vectors To A Function

Sep 4, 2014

I have a doubt and I have two vectors to a function.

A vector is (int *, const int) and the other is (string *, const int) and want to spend the two vectors and unite in a single function

A vector is passed to a function, but spending two vectors and join I cannot find the turn.

try (int *, const int, string *, const int)

But only understands the former as I do

View 1 Replies View Related

C++ :: Read CSV File Into Vectors?

Oct 13, 2014

I have a CSV file that is formatted in the following way. The top row contains headers and the data is below. I have opened the file (sec2011) in Numbers on Mac and saved it as a csv. I would like to read each of the columns into a vector, but I can not get the code to even open the file.

secid,date,low,high,close,volume,return,cfadj,open,cfret,shrout
101310,03JAN2011,181.21,186,184.22,5331413,0.023444,12,181.37,12,448837
101310,04JAN2011,183.78,187.6995,185.01,5033144,0.004288,12,186.15,12,448837
ifstream infile("sec2011.csv");
if (!infile) {
cerr << "Couldn't open file!"<<endl;
return 1;

This code always returns the Couldn't open File text.

What am I doing wrong. I know the above code doesn't put the data into vectors, but I can't even get the file to read.

View 2 Replies View Related

C++ :: Using Vectors For Manual Multiplication?

Jan 15, 2013

I'm trying to solve Project Euler 16 where you have to calculate 2^1000. SO I made a program that would solve multiplying a number b a single digit factor through manual multiplication in a vector, just to test things out.

The problem is when I take things out of main and try to make a separate function, the original number is never multiplied.

Here's my code with functions...

/*Using vectors manually to multiply a number to a positive power.*/
#include <iostream>
#include <vector>
using namespace std;
void print_vector(const vector<int>& v);

[code]....

Here is the other code, not using functions but even if I use an extra for loop to multiply by the same factor several times, it still does the same thing.

/*Using vectors manually to multiply a number by two (or any single digit factor).*/
#include <iostream>
#include <vector>
using namespace std;
void print_vector(const vector<int>& v);

[code]....

View 5 Replies View Related







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