//Class CMqlExpertclass CMqlExpert
//Purpose: Main class of trade system.
{
//----------------------------------------------------------------------------//protected:
//****************************************************************************//// Protected declarations of the class ////****************************************************************************//bool TradeMonday = true; //Trade in mondaybool TradeTuesday = true; //Trade in tuesdaybool TradeWednesday = true; //Trade in wednesdaybool TradeThursday = true; //Trade in thursdaybool TradeFriday = true; //Trade in friday
//----------------------------------------------------------------------------//public:
我不知道:)在我们的办公室,对于书面的代码如
至少,他们会被责骂,而且是正确的,我认为。
同样,这是一个复杂的类型,需要在创建时进行正确的初始化,如果字符串需要被初始化--这肯定是MT5(4)的一个错误。
也许数组的大小应该在创建后立即被清零?
我不知道 :) 在我们公司,他们会因为写了这样的代码而被罚款。
至少,你会被训斥,而且我认为是正确的。
在你使用一个变量之前,你必须给它赋值(明确地初始化它)。或者你不同意吗?
明确的初始化并不意味着在声明的时候需要初始化。但是,如果未初始化的变量的值随后被用于某些计算,其后果是不可预测的。
你吓到我了,拉希德,恕我直言。
一个类有一个构造函数,它执行对象的初始化,包括设置默认值,如果它是符合逻辑的。
如果初始化没有发生,必须有一种方法来知道对象是否处于适当的状态。对于一个字符串来说,设置一个默认值要合理得多。
这样的记号是偏执的,一个偏执的人不能先验地写出正常的代码。
所以字符串没有被初始化?
那么,字符串没有被初始化?
你吓到我了,拉希德,恕我直言。
一个类有一个构造函数,这是对对象进行初始化的地方,包括设置一个默认值,如果这符合逻辑的话。
如果初始化没有发生,必须有一种方法来知道对象是否处于适当的状态。对于一个字符串来说,设置一个默认值要合理得多。
这样的记号是偏执的,一个偏执的人不能先验地写出正常的代码。
所以字符串没有被初始化?
阅读帮助 -https://www.mql5.com/ru/docs/basis/types/classes。
如果一个结构包含字符串 类型的变量和/或动态数组对象 ,编译器会给这样的结构分配一个隐含的构造函数,其中字符串类型结构的所有成员都被清零 ,并且对动态数组对象进行了正确的初始化。
...
构造函数和析构函数
构造函数是在创建结构对象或类时自动调用的一个特殊函数,通常用于初始化 类成员。在下面的讨论中,我们只谈类,上述内容也适用于结构,除非另有说明。构造函数的名称必须与类的名称相一致。构造函数没有返回类型(你可以指定void 类型)。
某些类成员--字符串、动态数 组和需要初始化的对象--无论如何都会被初始化,不管是否存在构造函数。
这真令人沮丧...至少我可以知道。
它在结构上也会是NULL吗?
这真令人失望...好吧,至少我会知道。
它在结构上也会是NULL吗?
只要与NULL进行比较,你就会自己知道所有的事情 -Type void和常数NULL。
预定义的常量变量 NULL 是无效 类型 的。 它可以被分配给任何其他基本类型的变量,而无需转换 。它也允许将基本类型 的变量与NULL进行比较 。
例子。
//---- 如果一个字符串没有被初始化,就给它分配我们的预定义值
如果(some_string==NULL) some_string="空"。
NULL也 可以与使用new操作符 创建的对象的指针进行比较。
在使用一个变量之前,必须给 它分配一个值(明确初始化)。或者你不同意吗?
明确的初始化并不意味着在声明变量的时候需要初始化。但是,如果一个未初始化的变量的值随后被用于一些计算中,其后果是不可预测的。
说到鸟类。
而编译器将如何回应?并将回答以下问题 '=' - 非法使用赋值
编译器并没有弯曲 - '=' - 非法使用赋值。
我的问题是--如果程序员(在这种情况下,我)在使用变量之前不对其进行初始化(他按照编译器要求的方式进行,在构造函数中省略了这一时刻),会发生什么?
我有一个问题--如果程序员(在这种情况下是我)在使用变量之前没有注意初始化这些变量(按照编译器的要求做,而在构造函数中错过了这一点),会发生什么?
听起来像是某个新来者的问题...
好吧,这是我当时的想法(那是很久以前的事了,我想起来了),但我想在关键时刻写一份申请。:)
虽然我还是不明白为什么禁止在编译器层面初始化变量。