Problem with push_back,help me ASAP

A

AnuSree

hi



am getting error when am trying to type cast.is it possible to type
cast from one type of vector to another type.is there any other way
other than overloading.my peice of code in which am getting error is.



Here is my peice of code.

_____________________



vector<Varbind> varbinds;

vector<NameValuePair> nameValuePairs;



if(varbinds.size()!=0) {



for(int index = 0;index<varbinds.size();++index) {



nameValuePairs.push_back(varbinds[index]);

}



}



here i have to cast the type of varbinds from type vector<Varbinds> to
the type vector<NameValuePair>





And the second query is

______________________



it is also with push_back.Here is the peice of code



vector<NameValuePair> ar = req.arr();

VarbindList varbinds;

for ( int i = 0; i < ar.size(); ++i ) {

varbinds.push_back(ar); //Error Here

}



Here varbinds is the object of the class VarbindList and ar is of
type vector<NameValuePair>.I have to cast vector<NameValuePairs> to the
type VarbindList.



Please help me in this to aspects ASAP.
 
V

Victor Bazarov

AnuSree said:
am getting error when am trying to type cast.is it possible to type
cast from one type of vector to another type.is there any other way
other than overloading.my peice of code in which am getting error is.



Here is my peice of code.

_____________________



vector<Varbind> varbinds;

vector<NameValuePair> nameValuePairs;



if(varbinds.size()!=0) {



for(int index = 0;index<varbinds.size();++index) {



nameValuePairs.push_back(varbinds[index]);

It is only possible to do this if 'Varbind&' is convertible to
'NameValuePair const&'.
}



}



here i have to cast the type of varbinds from type vector<Varbinds> to
the type vector<NameValuePair>

No, you only have to have 'Varbinds' convertible to 'NameValuePair' but
since you didn't post the definition of either of them, there is no way
to recommed anything in particular.
And the second query is

______________________



it is also with push_back.Here is the peice of code



vector<NameValuePair> ar = req.arr();

VarbindList varbinds;


for ( int i = 0; i < ar.size(); ++i ) {

varbinds.push_back(ar); //Error Here


}



Here varbinds is the object of the class VarbindList and ar is of
type vector<NameValuePair>.I have to cast vector<NameValuePairs> to the
type VarbindList.

No, you don't have to cast to 'VarbindList', you only need it to be
convertible to the type '.push_back()' expects.

Next time post the _complete_ code. And take it easy with whitespace,
will you?

Victor
 
A

AnuSree

Hi Victor



Thanks for your trail, here am sending you the VarbindList class
definition.



_______________

Class VarbindList:

_______________



#ifndef VARBINDLIST_H

#define VARBINDLIST_H



#include "Varbind.h"

#include "Vector.h"

#include <vector.h>

#include "Snmp.h"

#include "Object.h"



class VarbindList : public Vector {



public:

VarbindList() {



static const string INVALID_OBJ =
"Invalid instance";

static const string INVALID_OBJ_VEC = "Not
an instance of vector";

}

VarbindList(int initialCapacity);



static VarbindList decodeSequence(Asn1Value
aVarbinds);// throws



void addVarbind(Object aVarbind);// throw Exception;





void addVarbinds(vector <Object> aVarbindArray);// throw
Exception;





void addVarbinds(Vector aVectorOfVarbinds);// throw Exception;





void addVarbinds(Object aVarbind);// throw Exception;





vector <Varbind> getVarbindArray();

vector <Object> encode();

char * toString();



// Constants

private:

static const string INVALID_OBJ;// = "Invalid
instance";

static const string INVALID_OBJ_VEC;// = "Not an
instance of vector";

};

#endif // VARBINDLIST_H



___________________

Class NameValuePair:

___________________



# ifndef NAMEVALUEPAIR_H

# define NAMEVALUEPAIR_H



#include "Snmp.h"

# include "AllIncludes.h"



class NameValuePair {

private:

string Name;

string Value;



public:

NameValuePair() { }

NameValuePair(string mName, string mValue) {

Name = mName;

Value = mValue;

}

//Get methods..

string name() { return Name; }

string value() { return Value; }



//Set Methods

void name(string mName) { Name = mName; }

void value(string mValue) { Value = mValue; }

};

# endif





And this is the peice of code of a method in which i am getting error
when am using push_back.



Message SnmpSouthAdaptor :: encode(Request req) {



vector<NameValuePair> ar = req.arr();

VarbindList varbinds;// = VarbindList();

for ( int i = 0; i < ar.size(); ++i ) {

varbinds.push_back(ar); //Error Here

}

}





Here in varbinds.push_back(ar); i have to type cast the type of ar
from vector<NameValuePair> to the type VarbindList but am not getting
hoe to do this,since the type of the ar is not the same as the type
of varbind am getting error no matching function for call to

`VarbindList::push_back (NameValuePair &)'





Here VarbindList is a class and varbinds is the object of the class
VarbindList and ar is of type vector<NameValuePair>.



I wrote the class header files of both VarbindList and NameValuePair on
the top.Help ASAP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,767
Messages
2,569,570
Members
45,045
Latest member
DRCM

Latest Threads

Top