| Topic: |
DEVELOP > c-Plus-Plus |
| User: |
"AnuSree" |
| Date: |
16 Oct 2003 06:43:42 AM |
| Object: |
Problem with push_back,help me ASAP |
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.
--
Posted via http://dbforums.com
.
|
|
| User: "Victor Bazarov" |
|
| Title: Re: Problem with push_back,help me ASAP |
16 Oct 2003 08:09:34 AM |
|
|
"AnuSree" <member44430@dbforums.com> wrote...
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;
What's 'VarbindList'? I'll assume that it's a vector<Varbind>.
Next time please specify.
for ( int i = 0; i < ar.size(); ++i ) {
varbinds.push_back(ar); //Error Here
Well, again, you're trying to use 'vector<NameValuePair>' where
a 'Varbind' is expected (under my assumption).
}
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
.
|
|
|
|
| User: "AnuSree" |
|
| Title: Re: Problem with push_back,help me ASAP |
21 Oct 2003 05:28:48 AM |
|
|
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
***** 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
--
Posted via http://dbforums.com
.
|
|
|
|

|
Related Articles |
|
|