![]() |
| ||
| copy constructor problem Hi, i need help creating a copy constructor. i have a class called CElist (and another called CEmployee) and it contains methods like this one: bool CElist::getFirst(CEmployee& e) { //do some stuff //sets e to the first employee and returns true //returns false if it cant } my problem is with the copy constructor: CElist::CElist(const CElist& eList) { CEmployee newEmp; eList.getFirst(newEmp); //this is the error part! --> cannot convert 'this' pointer from 'const class CElist' to 'class CElist &' this.setFirst(newEmp); //do other stuff } i dont think im changing the eList right? Right now the only solution i can think of is to create a different function that returns the first CEmployee, not a bool... >< thanks for any help :) |
| ||
| Re: copy constructor problem hmm.. well it works if i dont make the paramter const, so then i guess my question would be, does the parameter for a copy constructor always have to be const? (i know if im just copying values it should be, but....) sorry, im new at c++ >< |
| ||
| Re: copy constructor problem You only make something const(constant) if it's , well, constant. If you're going to change anything about it, or any sorts of funky errors pop up, you're better off not const-ing it. I personally never use const, though I did take C first, so that might have something to do with it. If it's not absolutely required that you put const there, then don't. What are you doing in your program, though? |
| ||
| Re: copy constructor problem oh its to maintain a list of employees (for one of my assignments...) but its alrite^^ i fixed it --> didnt know that i can access the private data members of the passed instance in the constructor... i htought it would be illegal but guess not^__^ i learned java before, but now im doing c++, and its ...werid :) hehe thanks for the reply. |
| ||
| Re: copy constructor problem i thought it's wrong ,whick use const parameter to construct Class CELIST,illegel grammar. CElist::CElist(const CElist& eList)//org CElist::CElist(CElist& eList)//try it |
| ||
| Re: copy constructor problem For me, the problem is the following : in your CElist constructor, the parameter is const, so you cannot call methods that are not const on this object. You have to change the signature of your getFirst method : bool CElist::getFirst(CEmployee& e) const; if this method do not modifies modifies the insternal state of the object (because now 'this' is a 'const CElist*' Quote:
|
| ||
| Re: copy constructor problem Don't resurrect ancient threads. |
| All times are GMT -4. The time now is 7:10 am. |
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC