Re: Enum plus std::vector questions
Jack wrote:
I changed the argument from const PFRUIT& a to
FRUIT& a; as the compiler complaint that I couldn't modify a
However, as usual, I still run into the same situation while I need to
convert FRUIT& a => FRUIT* b;
Any help is appreciated!
Jack:
You just have to learn the syntax for pointers and references.
Programming is not just a series of guesses.
If a is non-const FRUIT&, then you can do
FRUIT* b = &a;
But why are you using pointers at all? References are generally
preferred in C++.
A couple more points:
1. Again, don't use p prefix for non-pointers.
2. You should not really have changed the argument of the method, rather
you should have changed the return type. Eg:
FRUIT CFruitRec::addfruit(const FRUIT& fruit)
{
m_fruitarr.push_back(fruit);
m_numfruit++;
return fruit;
}
The original fruit is not changed; the method returns a copy. Returning
by value can be expensive, but not for something like your FRUIT enum.
When you pass a non-const reference to a function, there is an
implication that the object will be changed. I doubt you want that here,
so don't do it.
--
David Wilkinson
Visual C++ MVP