Stanislav Korotky: 这不是我的意思。 typename返回一个带有类型名称的字符串。在模板类方法里面,字符串的类型是 "int",而在从那里调用的构造函数里面,字符串包含 "string"。
class A { public:
template<typename T>
A( T ) { Print( typename( T )); }
};
class B { public:
template<typename T>
void f( T t ) { A a( t ); } //вызываем A::A(...)
};
voidOnStart()
{
B b;
int i = 0;
b.f( i );
}
A100:
你是对的。简洁明了,没有任何多余的话语。我已经发布了一个工作代码。
结果是,在这个方法中typename正确地定义了传入的类型,例如int,但在B构造函数中typename已经等于string。
typename的结果总是字符串类型,换句话说,就是
这不是我的意思。 typename返回一个带有类型名称的字符串。在模板类方法里面,字符串的类型是 "int",而在从那里调用的构造函数里面,字符串包含 "string"。
如果缺少#endif,编译器不会报告错误
最好是这样,否则很难发现错误结果是:int。
伙计们,这是一个市场错误还是完全正常?
我没有试过,但如果它与硬件而不是操作系统有关,就不应该工作。这就像把硬盘拆下来,放在不同的主板上,用不同的视频。将马上开始寻找新的司机。
还是我对虚拟机 有误解?
在一个派生类的实例中调用一个虚拟函数,会导致从基类而不是派生类中调用该函数。
在一个派生类的实例中调用一个虚拟函数,会导致从基类而不是派生类中调用该函数。
他们总是在构造函数中这样做。为什么?
谢谢你,我不知道)最好能把它添加到MQL5参考资料中,你知道,在那里提到了虚拟函数 和构造函数。不是所有的语言都是这样的。