#include <memory>
#include <iostream>
class SomeObj
{
public:
SomeObj() : val_(std::make_shared<int>(10)) {}
SomeObj(const int& val) : val_(std::make_shared<int>(val)) {}
const int& operator*() const { return *val_; }
int& operator*() { return *val_; }
private:
std::shared_ptr<int> val_;
};
SomeObj getSomeObj(const int& i) { return SomeObj(i); }
int main() {
const int& v = *getSomeObj(100);
std::cout << v;
return 0;
}
Войдите чтобы поставить Нравится
Войдите чтобы прокомментировать