C++实现get和set

这个想法来自于C#,经常用wpf的话,会接触绑定。数据绑定的实现要点之一便是get与set方法,下面的片段展示了这个事请。如果您想直接带走代码,可以跳转到文章末尾。

namespace GetAndSet
{
    class Example
    {
        private string _x;
        public string x
        {
            get
            {
                Console.WriteLine("x 取得值");
                return _x;
            }
            set
            {
                Console.WriteLine("x 设置值");
                _x = value;
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Example test = new Example();

            test.x = "debug";

            Console.WriteLine("----------------");

            Console.WriteLine("test.x = " + test.x);
            Console.ReadKey();
        }
    }
}


如果你运行它,会得到:

<

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在C++中,可以使用类和成员函数来实现get、set、subscribe接口的设计。 下面是一个示例类的设计: ```c++ class Device { public: Device(int id); double getTemperature(); void setTemperature(double temperature); void subscribeTemperature(std::function<void(double)> callback); private: int id_; double temperature_; std::vector<std::function<void(double)>> callbacks_; }; Device::Device(int id) : id_(id), temperature_(0.0) {} double Device::getTemperature() { return temperature_; } void Device::setTemperature(double temperature) { temperature_ = temperature; for (auto &callback : callbacks_) { callback(temperature_); } } void Device::subscribeTemperature(std::function<void(double)> callback) { callbacks_.push_back(callback); } ``` 该类实现了一个Device设备的温度读取、修改和订阅功能。其中,getTemperature()函数用于获取当前温度值,setTemperature()函数用于修改温度值,并通知所有订阅者,subscribeTemperature()函数用于订阅温度值的变化,并注册回调函数。使用该类时,可以按照以下方式进行调用: ```c++ Device device(1); device.subscribeTemperature([](double temperature) { std::cout << "Temperature changed: " << temperature << std::endl; }); device.setTemperature(25.4); double temperature = device.getTemperature(); ``` 上述代码中,首先创建了一个Device对象,并注册了一个订阅温度变化的回调函数。然后,调用setTemperature()函数修改温度值,并会触发回调函数。最后,调用getTemperature()函数获取当前温度值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值