|
| ||||||||||
| Tags: const, obj |
![]() |
| | Thread Tools | Search this Thread |
|
#1
| ||||
| ||||
| const Obj problem in C++
source\ManagerViewer.cpp: In member function `void managerViewer::addLoggerWidget(const QWidget*)': source\ManagerViewer.cpp:26: error: invalid conversion from `const QWidget*' to `QWidget*' I understand that the following will result in a pointer which can be changed, and the compiler stops: QWidget* widget = const_widget_ptr; But the function accepting the pointer is not my own and I need to send a non-const pointer to it. Is there a way to work around this? Thanks |
|
#2
| ||||
| ||||
| Re: const Obj problem in C++ Code: int Obj::Read() const;
int Obj::Write(int iWhatever);
int PrettyFunction(int iCommand, Obj* pObject, int iAux)
{
switch(iCommand)
{
case CMD_READ:
return pObject->Read();
case CMD_WRITE:
return pObject->Write(iAux);
default:
DropBombOnWhiteHouse();
}
} |
|
#3
| ||||
| ||||
| Re: const Obj problem in C++
That you could do it, yes, thats its appropriate, no. The problem here is you are passing a pointer to a constant and looking for a way to break a promise. To drive the point a little further, the parameter Obj* pObject should really be Obj* const pObject where that crucial pointer can't be reseated (or better yet Obj& r_obj). If the client of your code sees a constant pointer to a constant (ie: const Obj* const pObject), the last thing the client will expect is that the pointee gets modified or reseated. Either would break the contract and in essence: the interface. At that point your client (who might very well be yourself in the near future) will then face the horror of having to read and consult every line of code because the interface can no longer be trusted. |
![]() |
|
| Thread Tools | Search this Thread |
| |
Similar Threads for: "const Obj problem in C++" | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Blackberry Tour Youtube problem/facebook and phone freezing problem | Lohitaksha | Portable Devices | 6 | 27-07-2010 12:10 AM |
| Toshiba satellite L305D-S5893 shutdown problem or bios update problem | Colter | Portable Devices | 4 | 10-04-2010 04:19 PM |
| Differentiate between const and static readonly | KALLIYAN | Software Development | 3 | 16-11-2009 11:52 PM |
| Problem of const variable and its reference | KABIRA16 | Software Development | 3 | 04-09-2009 04:45 PM |
| How to declare const variable in C++ | AZUL | Software Development | 3 | 02-09-2009 06:36 PM |