#property strict#property show_inputs
//+------------------------------------------------------------------+//#define templ(T) template<typename T>// задача данного макроса определять int bool double и т.д#define Vosmas(a,b,c,d,e) 5int Mas[2],Mas2[2][2],Mas3[2][2][2];//объявил массивы которые будут хранить информацию// обработка с помощью классов должна быть любого типа templ(T)//+------------------------------------------------------------------+voidOnStart()
{
int Perem=0;
Perem=Vosmas(Mas,0,0,0,0);
Print("Vosmas: ",Perem);
Perem=Vosmas(Mas2,0,0,0,0);
Print("Vosmas: ",Perem);
Perem=Vosmas(Mas3,0,0,0,0);
Print("Vosmas: ",Perem);//во всех случаях результат 5
}
//+------------------------------------------------------------------+
#property strict#define Vosmas(a,b,c,d,e) 5int Mas[2],Mas2[2][2],Mas3[2][2][2];//объявил массивы которые будут хранить информацию// обработка с помощью классов должна быть любого типа templ(T)//+------------------------------------------------------------------+voidOnStart()
{
int Perem=0;
Perem=Vosmas(Mas,0,0,0,0);
Print("Vosmas: ",Perem);
Perem=Vosmas(Mas2,0,0,0,0);
Print("Vosmas: ",Perem);
Perem=Vosmas(Mas3,0,0,0,0);
Print("Vosmas: ",Perem);//во всех случаях результат 5class CA{public: int a;} A;
class CB{public: int b;} B;
class CC{public: int c;} C;
class CD{public: int d;} D;
class CE{public: int e;} E;
Perem=Vosmas(A,B,C,D,E); Print("Vosmas: ",Perem);//во всех случаях результат 5
Perem=Vosmas("УРА","Я","УЧУ","MQL","4"); Print("Vosmas: ",Perem);//во всех случаях результат 5
}
//+------------------------------------------------------------------+
再次强调:你没有得到一个编译错误 并不意味着你的模板类被包含了 - CData类对象在哪里?- 我看到了一个模板声明,但这样一个变量在哪里?- 对象?
如果你 "非常需要 "解决这个问题,那就编写完全可重复的代码--完全没有.....,由你决定,而且我不明白使用宏替换的逻辑。
也许这就是问题的关键,我很少使用宏,至少如果我使用宏,我明白它最终的结果是什么,在你的例子中,它对我来说是个谜。
是的,你是对的,该对象没有被创建,所以我检查了一下
我不明白为什么我需要这样一种编程语言,如果我甚至不能重载它们,我为什么需要这样的类,所有的东西都是死的和静态的。
是的,你是对的,该对象没有被创建,我就是这样检查的。
结果,重载是不可能的,这是一个减分项,那么我为什么需要这样一种编程语言,如果我连重载都不能,那么我为什么需要这样的类,一切都是死的,静态的?
真的吗?
你不知道。
那么人们是如何写出复杂的东西的呢?这是无法理解的......
宏的任务是调用类中的函数,并将值传递给这个函数,由于宏可以接受任何维度的数组,所以我想做这样一个方案。当然有很多石头,但我需要从类中调用函数,我不知道如何从类中调用一个简单的函数(在我的例子中,方法Total没有描述)不是写在Help中,有复杂的例子与转移有关。
下面是一个例子,一个宏需要一个任意维度的数组,开发者削减了这些功能,对复杂的元素进行正常工作,这是很糟糕的。
你可以不用模板,但有模板会更好。
我不想这样,但我打开了终端,这是你的例子。
我注释了宏替换,代码可以编译,那么它就不工作了吗? 我问了三次,为什么一个模板不被使用,为什么一个宏替换只是重复了一个语言关键词?
我不仅不明白需要什么,而且也不明白该如何处理部分不能编译的代码。
HH:如果你想用这个模板或宏来制作一个多维数组--我认为是行不通的,通过论坛搜索找到一个现成的解决方案,并使用
ZS:我肯定会放弃,这对我来说不是一个问题。
我如何给mql4的开发者写一封信,如何看到编译器的代码,我可以给它增加更多的功能,使它不那么静态?
在把裤子套在头上的情况下就不行了 :)
真的吗?
你不知道。
那么人们是如何写出复杂的东西的呢?这是无法理解的...
好吧,如果内存访问被拒绝与动态函数一起工作,你能在这里写得多复杂,甚至连重载都不可能,所以你必须多写1000行代码来完成你的程序,启动额外的循环和变量,因此程序的性能为0。
好吧,如果内存访问被拒绝,你不能使用动态函数,甚至连重载都不可能,那么你必须多写1000行代码来完成你的程序,启动额外的循环和变量,所以程序性能为0,这有什么难写的。
嗯,如果程序结构最初是死的,是的,没有办法。
该程序写在最后。首先,对计划结构采取周到的方法。
说实话,我不明白你为什么要为一些以不同方式完成的事情奋斗几个月,而且是在5分钟内。我真的不明白...
我不想这样做,但我打开了我的终端,这是你的例子。
我注释了这个宏替换,代码可以编译,那么它就不能工作了吗? 我问了三次,为什么不使用的模式,为什么只是重复语言关键词的宏替换?
我不仅不明白需要什么,而且也不明白该如何处理部分不能编译的代码。
HH:如果你想用这个模板或宏来制作一个多维数组--我认为是行不通的,通过论坛搜索找到一个现成的解决方案,并使用
ZS:我肯定会放弃,这对我来说不是一个问题。
这里我举了一个例子,Vosmas 宏接受任何数组。数组的唯一解决方案是使用相同维度的数组,我不是在说各种指针和引用以及在C++中工作的动态函数,甚至在C++中输出一个函数的问题,指定类型和其他东西都是太静态的语言,你不能在这里写出真正酷的东西。
这里我举了一个例子,Vosmas 宏接受任何数组。数组的唯一解决方案是使用相同维度的数组,我不是在说各种指针和引用以及在C++中工作的动态函数,还有在C++中派生函数指定类型和其他废话的问题,总之太静态的语言和所有,你无法在这里写出真正酷的东西。
开始阅读C++基础知识,MQL有最小的差异!
ZS: 恭喜你,你写了一个万能的宏,可以做任何事情,数组是它最容易 "处理 "的东西,例子可以复制。
开始阅读C++基础知识,MQL的差别很小
ZS: 恭喜你,你写了一个万能的宏,可以做任何事情,数组是它最容易 "处理 "的东西,例子可以参考。
好吧,我想通过将一个数组传入一个宏,并在宏中调用一个可重载的函数并返回结果来掌握这个问题,似乎是一个原始的任务,但是当你在宏中调用一个可重载的函数时,它会抛出一个警告,即函数3原来在宏中你需要写一个标准来确定调用哪个可重载的函数,这里你又得问如何做这个检查,一般来说这个想法会失败。