Сообщение от Octane
|
в C++ классы статичны, ничего "потом" добавить не получится
|
Теоретически можно создать фабрику объектов через шаблоны в связке со
smart pointer's. В этом случае можно получить новый объект в рантайме, а само назначение имени объекта будет иметь вид
new Class('Foo')
Сообщение от Mахmахmахimus
|
static это как прототип
|
Не совсем, это свойство доступное в пределах класса, т.е. к нему можно обращаться как глобальному объекту, но за пределами класса оно не доступно.
Сообщение от http://msdn.microsoft.com/ru-ru/library/f4ewhdb8.aspx
|
Модификатор static указывает, что член класса принадлежит самому классу, а не его экземпляру. Даже если в отдельном приложении создается множество экземпляров класса, в нем существует только одна копия члена с модификатором static. При доступе к члену с модификатором static следует ссылаться на класс, на не на его экземпляр. Однако в рамках объявления члена класса к членам static можно обращаться с помощью объекта this.
Модификатором static можно помечать члены классов. Классы, интерфейсы и члены интерфейсов не могут иметь модификатора static.
|
Сообщение от Mахmахmахimus
|
Кстати может ты знаешь, допустим ты описал класс, потом создал им кота, потом добавляешь в класс новые протект методы, начнет ли их иметь уже созданный кот?
|
Ну и нафига это? Мне кажется ты путаешь с полиморфизмом:
#include <iostream>
#include <string>
using namespace std;
class A {};
class B {};
template <typename T> class Foo {};
template <> class Foo <A>
{
public:
void get() {
cout << "Class A" << endl;
}
};
template <> class Foo <B>
{
public:
void get() {
cout << "Class B" << endl;
}
};
int main() {
Foo<A> a;
Foo<B> b;
a.get(); //Class A
b.get(); //Class B
return 0;
}
http://codepad.org/cgzfHj9X