我将Ruby嵌入到我的C项目中,并希望加载几个定义从我自己的父类inheritance的类的文件。 每个inheritance的类都需要在初始化时设置一些变量,我不希望Ruby和C有两个不同的变量。
有没有办法定义一个具有自己的自定义setter / getter的类变量,或者这是一种处理它的愚蠢方法? 使用自定义数据类型可能会更好吗?
我不确定你究竟在问什么。 当然类变量可以有getter和setter(在幕后你可以按照自己喜欢的方式存储值)。 这个片段是否有助于阐明任何内容?
>> class TestClass >> def self.var >> @@var ||= nil >> end >> def self.var=(value) >> @@var = value >> end >> end => nil >> ?> TestClass::var => nil >> TestClass::var = 5 => 5 >> TestClass::var => 5
如果你涉及整个元编程的事情,你可以实现类似于attr_accessor方法的class_attr_accessor方法。 以下等同于上面的代码。
class Module def class_attr_accessor(attribute_name) class_eval <<-CODE def self.#{attribute_name} @@#{attribute_name} ||= nil end def self.#{attribute_name}=(value) @@#{attribute_name} = value end CODE end end class TestClass class_attr_accessor :var end
以上就是c/c++开发分享有没有办法让类变量与setter / getter一样的虚拟变量?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/562371.html