我知道,我可以创建方法点,我知道,这些点一般不同于职能点。 不允许它们之间发生争执。 方法学点可包含有关如何调整<条码>的>条码/代码>点等的许多数据。
我愿知道,如何找到执行特定方法的守则的实际地址。 这一地址不会以任何方式被忽略,而是会被用作特定方法所属类型的身份识别器,如RTTI,其好处是对有图书馆约束的人不敏感,因为只有一个单位才有这一代码。
EDIT:
Why i don t add some getType()
method returning object s type?
因为我只想以这种方式使用我制造的课堂。 我试图做的是,基本上我执行“<代码>variant类别,只要存在某种类型的真空* 而基本上接受一切。
So then i could write:
template <typename T>
class getTypeId{
};
class foo{
public:
void bar();
};
// getTypeId declared but not defined for generic type T earlier...
template <>
class getTypeId<foo>{
static void* get<foo>(){
return &foo::bar;
}
};
void doSomething(myVariant var);
int main(int argc, char* argv[]){
foo f;
myVariant var = myVariant::fromType<foo*>(&f);
doSomething(f);
}
void doSomething(myVariant var){
foo* f = var.toType<foo*>(); // Returns foo object from main
int* i = var.toType<int*>(); // returns null, as var is not int* in my example.
}
设想是, >正在使用
getTypeId
获取代表价值的类型,并将其与投到的[
上的物体点相去。
这种解决办法的美容是,即使存在一些界定X型的共享图书馆X,但Y和Z的图书馆将单独使用X就X型号达成一致(例如,在Y类变体中,该变量被转至Z),因此在X上的地址:方法保持不变。 作为Y或Z图书馆的创建者(但NOT X!!) 我无需确保X的平衡使RTTI能够或甚至知道我的真实存在,但X的类型仍然完全符合我的变数。
EDIT:
I see by now that there is no implementation-independent way to get this done. However I think that this is quirk of not-usually-needed, and therefore not-existing feature, rather than feature that is impossible to create. I think I still haven t made it clear what I wanted to acheive and how I was plannig to do so. So:
我通过图书馆这里指的是共享图书馆(代尔、索等等)。
并非纯粹虚拟的每一种方法(定义的每一种方法)都必须得到执行。 这种执行是一种功能,接受一个附加参数<代码>,即代码>——虚拟功能只在电线上有所不同。 举例来说,请采用X类,并采用<代码>X:foo。 这种方法只受X类的约束,即使Y类继承该方法,这种方法仍保留在<代码>X:foo<>/code>,因此,必须确定<代码>X。 校外法或儿童班子覆盖法
Xchild
Xchild:foo with new address. 然后,您可使用<代码>Xchild:foo,代表Xchild
,但不得使用X
。如果在图书馆校准X中界定X类(其所有方法都是准确的),而校准和校准既使用校准X(但并不相互了解),也用X中第一种方法确定自己的目的(表示这不会对X开发商施加任何影响),那么他们就X类究竟是什么达成一致意见。 如果申请开发商使用校准号获取变量,然后通过校准进行校准,则两者都将适当承认上述类型。
我是NOT,试图开发一种预测型-变型-变型-因为X可以读成X而节省的变量,即使实际点子传给我的变体是Xchild。 我不希望获得特定情况下最高级类别的类型——只是用来制造变量的类别。