codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> struct Data { int id; int size; }; class MyClass { public: MyClass() { m_data = new Data(); } ~MyClass() {delete m_data; } MyClass(int id, int size) { m_data = new Data(); m_data->id = id; m_data->size = size; } const Data * const getData() const { return m_data; } void setData(const Data &data) { m_data->id = data.id; m_data->size = data.size; } // void setId(int id) { m_data->id = id; } // void setSize(int size) { m_data->size = size; } private: Data *m_data; }; void sizePlus10(Data *pData) { pData->size += 10; } int main(void) { MyClass obj(1, 20); const Data *pData = obj.getData(); std::cout << "id = " << pData->id << ", size = " << pData->size << std::endl; // sizePlus10() を呼びたい // sizePlus10(pData); // Line 44: error: invalid conversion from 'const Data*' to 'Data*' sizePlus10(const_cast<Data*>(pData)); std::cout << "id = " << pData->id << ", size = " << pData->size << std::endl; obj.setData(*pData); // obj.setSize(100); std::cout << "id = " << pData->id << ", size = " << pData->size << std::endl; return 0; }
Private
[
?
]
Run code
Submit