C++实现Property
C#,JS的Property很好用,可C++为什么没有呢?
那我们自己做一个吧.
从哪开始呢?先分析分析Property.
set无非就是Property=value.
get无非就是value=Property.
那我们可以写
class Property{
operator 要转化的类型();
void operator=(设置的类型);
}
有了思路大家就动手写代码吧…
(15分钟后)
看看实现的效果
Property.h
#pragma once
#include <functional>
template<class _T>
class Property;
template<class _T>
class SetProperty;
template<class T>
class GetProperty
{
private:
GetProperty();
GetProperty(const GetProperty&);
GetProperty(GetProperty&&)noexcept;
GetProperty& operator=(const GetProperty&);
GetProperty& operator=(GetProperty&&)noexcept;
protected:
std::function<T()> m_Get;
public:
friend Property<T>;
friend SetProperty<T>;
explicit GetProperty(std::function<T()> get)
:m_Get(get)
{
}
operator T()const
{
return m_Get();
}
bool operator