Val = Class.new
Val.instance_variable_set(:var, "easily confused")
Val.send(:define_method,:initailize) do
self.instance_variable_set(:val, "With this.")
end
class Meh
@@meh = "Is this"
def initialize
@@meh = "different?"
end
end
m = Meh.new
p Meh.class_variables
p Class.class_variables
[:@@meh]
[]
Meh = Class.new
Meh.class_variable_set(:@@one, "blah")
Meh.send(:define_method, :initialize) do
@@two = "blah"
#self.class_variable_set(:@@two, "blah")
# Second line was no good.
end
p "Meh #{Meh.class_variables}"
p "Class #{Class.class_variables}"
# created using Meh
m = Meh.new
p "Meh #{Meh.class_variables}"
p "Class #{Class.class_variables}"
"Meh [:@@one]"
"Class []"
"Meh [:@@one]"
"Class []"
Factory = Class.new
obj = Factory.new
class Factory
end
obj = Factory.new
#include <iostream>
using namespace std;
class A {
private:
static int a;
public:
static void set(int _a) {
a = _a;
};
static int get() {
return a;
};
};
class B : public A {
private:
static int a;
public:
static void set(int _a) {
a = _a;
};
static int get() {
return a;
};
};
int A::a = 0;
int B::a = 0;
int main() {
A::set(1);
cout << A::get() << endl;
B::set(2);
cout << B::get() << endl;
cout << A::get() << endl;
}
class A
def A.set a
@@a = a
end
def A.get
@@a
end
end
class B < A
def B.set a
@@a = a
end
def B.get
@@a
end
end
A.set 1
p A.get
B.set 2
p B.get
p A.get
Factory = Class.new
# Roar is an instance of Class.
o = Factory.new
#o is an instance.
o = Class.new
o = Class.new
o2 = Class.new
To me this makes sense and I can see why they've done it like this