| Topic: |
DEVELOP > c-Plus-Plus |
| User: |
"fl" |
| Date: |
15 Jan 2008 10:17:25 AM |
| Object: |
Question about copy constructor |
Hi,
I browse through C++ primer. I have a question about the calling of
copy constructor in the example of that book. Below, "item" is an
associate container. In main func, there is a call of add_item. From
debug, I see add_item calls "Sales_item(const Sales_item &i)". My
question is: why add_item calls the copy constructor. To you, it may
be very easy. For a beginner like me, I don't know now. Could you give
me an explanation about that? Thanks in advance.
..........................
class Basket {
....
public:
....
void add_item(const Sales_item &item)
{items.insert(item); }
private:
std::multiset<Sales_item, Comp> items;
};
....
class Sales_item {
friend class Basket;
public:
....
// copy control members to manage the use count and pointers
Sales_item(const Sales_item &i):
p(i.p), use(i.use) { ++*use; }
private:
...
};
.
|
|
| User: "Victor Bazarov" |
|
| Title: Re: Question about copy constructor |
15 Jan 2008 10:22:38 AM |
|
|
fl wrote:
Hi,
I browse through C++ primer. I have a question about the calling of
copy constructor in the example of that book. Below, "item" is an
associate container. In main func, there is a call of add_item. From
debug, I see add_item calls "Sales_item(const Sales_item &i)". My
question is: why add_item calls the copy constructor. To you, it may
be very easy. For a beginner like me, I don't know now. Could you give
me an explanation about that? Thanks in advance.
.........................
class Basket {
...
public:
...
void add_item(const Sales_item &item)
{items.insert(item); }
'std::multiset' makes copies of things that you insert. That's
just how all standard containers work.
private:
std::multiset<Sales_item, Comp> items;
};
...
V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask
.
|
|
|
|

|
Related Articles |
|
|