#include <iostream>
class DataManager {
private:
int data;
public:
DataManager(int d) : data(d) {}
int getData() const {
return data;
}
void setData(int newData) {
data = newData;
}
void incrementData() const {
// const_cast to call non-const member function from const context
const_cast<DataManager*>(this)->setData(data + 1);
}
};
int main() {
DataManager dm(10);
std::cout << "Initial data: " << dm.getData() << std::endl;
dm.incrementData();
std::cout << "After increment: " << dm.getData() << std::endl;
return 0;
}