class ASD { private: // Здесь располагаются переменные и функции, доступные только внутри класса int c(int m_a,int m_b) { m_a=a+b; m_b=a-b; int m_d=m_a+m_b; d=m_d; Print(__FUNCTION__); return(c(m_a,m_b)); } public: int a; int b; int d; }; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ ASD ar; voidOnStart() { //--- ar.a=InputA; ar.b=InputB; Alert("ar.a=",ar.a,"\nar.b=",ar.b,"\nar.d=",ar.d); } //+------------------------------------------------------------------+
class ASD { private: // Здесь располагаются переменные и функции, доступные только внутри класса public: int a; int b; int d; int c(int m_a,int m_b) { m_a=a+b; m_b=a-b; d=m_a+m_b; Print(__FUNCTION__); return(d); } }; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ ASD ar; voidOnStart() { //--- ar.a=InputA; ar.b=InputB; Alert("ar.a=",ar.a,"\nar.b=",ar.b,"\nar.d=",ar.d,"\nar.c(",ar.a,",",ar.b,")=",ar.c(ar.a,ar.b)); } //+------------------------------------------------------------------+
打印只能插入到一个函数里面,但我不明白如何调用这个函数来使打印或警报工作。你能帮忙用三个简单的变量修正我的代码吗?我按照文章中的描述做了所有的事情,但是编辑器没有显示出来,或者缺少一些东西,或者缺少一些东西,总之就是墙,所以我请求帮助。谢谢你的SKC。
你在输出d的时候,有一个警报。
它是在哪里计算的?
//| TestASD.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int InputA=1;
input int InputB=3;
class ASD
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
int m_d=m_a+m_b;
d=m_d;
Print(__FUNCTION__);
return(c(m_a,m_b));
}
public:
int a;
int b;
int d;
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
ASD ar;
void OnStart()
{
//---
ar.a=InputA;
ar.b=InputB;
Alert("ar.a=",ar.a,"\nar.b=",ar.b,"\nar.d=",ar.d);
}
//+------------------------------------------------------------------+
在类的内部,对值进行普林。然后在日志中看看运行脚本时将打印出什么;)
所以这也是可以的。
类。
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
int a_s;
int a_d;
int d;
int g ()
{d=a_s+a_d;
return (g());
}
public:
void fg (int a,int b)
{ a_s=a;
a_d=b;
}
void sf ()
{g ();
Alert (d);}
};
剧本
ASD ar;
void OnStart()
{
ar.fg (3,5);
ar.sf ();
}
所以这也是可以的。
类。
所以也没有什么
//| TestASD.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int InputA=1;
input int InputB=3;
class ASD
{
private:
// Здесь располагаются переменные и функции, доступные только внутри класса
public:
int a;
int b;
int d;
int c(int m_a,int m_b)
{
m_a=a+b; m_b=a-b;
d=m_a+m_b;
Print(__FUNCTION__);
return(d);
}
};
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
ASD ar;
void OnStart()
{
//---
ar.a=InputA;
ar.b=InputB;
Alert("ar.a=",ar.a,"\nar.b=",ar.b,"\nar.d=",ar.d,"\nar.c(",ar.a,",",ar.b,")=",ar.c(ar.a,ar.b));
}
//+------------------------------------------------------------------+
这并不清楚--你想得到什么?
我愿意。
1.将数据从脚本传递到类中
2.在班级中对这些数据进行汇总
3.将类中的和传递给脚本
4.从脚本中,在显示器或打印机上打印出数据的总和。
一切都是!
我愿意。
1.将数据从脚本中传递给类
2.在班级中对这些数据进行汇总
3.将类中的和传递给脚本
4.从脚本中,将数据的总和输出到显示器或打印机。
全部!
见上述例子
但它也没有计算出变量a+b=d的总和,而我需要的是d的总和!
我没有告诉你到底应该怎么算。我向你展示了如何获得计算值--调用 c()函数。
你没有在任何地方调用它,而是等着D以某种方式自行计算。
而c()函数计算的内容是由你决定的
我没有告诉你到底应该怎么算。我向你展示了如何获得计算值--调用 c()函数。
你没有在任何地方调用它,你在等待D以某种方式自行计算。
而你要自己决定c()函数算什么!
我知道如何在专家顾问中创建和调用该函数,我也在使用它。这个问题是关于班级的!
我没有告诉你到底应该怎么算。我向你展示了如何获得计算值--调用 c()函数。
你没有在任何地方调用它,你在等待D以某种方式自己计算出来。
而c()函数计算的内容是由你决定的
这就是重点,如何在一个类里面调用一个函数,即如何私有:公有:,如何向一个类传递数据,以及如何从这个类中获得结果。到目前为止,这就是它!
但你的函数也没有计算出任何东西。