У меня есть класс
В конструкторе копирования ошибка компиляции..
что вроде бы естесвтенно так как там происходит доступ к this..
что для const объекта невозможно...
Как правильно днлать такие вещи?
Я конечно могу просто поле публичное завести вместо Set/Get и все будет работать, но...
class TransactionEntity
{
private:
int id;
public:
TransactionEntity()
{
}
TransactionEntity(const TransactionEntity &entity)
{
this->SetId(entity.GetId());//тут ошибка компиляции..
}
int GetId()
{
return this->id;
}
int SetId(int id)
{
this->id = id;
}
Здравствуйте, Аноним, Вы писали:
int GetId() const
{
return id;
}
Здравствуйте, Аноним, Вы писали:
А>У меня есть класс
А>В конструкторе копирования ошибка компиляции..
А>что вроде бы естесвтенно так как там происходит доступ к this..
А>что для const объекта невозможно...
А>Как правильно днлать такие вещи?
если у вас есть неизмеяемый (const) объект, то у него можно вызывать только константные методы
метод GetId надо сделать константным, т.к. он не меняет состояние класса
ну а SetId должен возвращать либо void либо дописать код, который возвращает число
пример:
http://ideone.com/Aw6RV
Здравствуйте, Аноним, Вы писали:
А>У меня есть класс
А>В конструкторе копирования ошибка компиляции..
А>что вроде бы естесвтенно так как там происходит доступ к this..
А>что для const объекта невозможно...
А>Как правильно днлать такие вещи?
А>Я конечно могу просто поле публичное завести вместо Set/Get и все будет работать, но...
А>А> TransactionEntity(const TransactionEntity &entity)
A> : id( entity.id )
А> {
A> //this->>SetId(entity.GetId());//тут ошибка компиляции..
А> }
А>
Здравствуйте, K13, Вы писали:
А>>Я конечно могу просто поле публичное завести вместо Set/Get и все будет работать, но...
А>>А>> TransactionEntity(const TransactionEntity &entity)
A>> : id( entity.id )
А>> {
A>> //this->>SetId(entity.GetId());//тут ошибка компиляции..
А>> }
А>>
С подходом согласен, а ТС могу посоветовать заботать, что такое
private члены и кто имеет и не имеет к ним доступ. Ну и в том, что такое константность разобраться тоже
не помешаетАвтор: Erop
Дата: 04.09.07
...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском