class A {
private:
int x;
public:
void f(int v) const { Print("const"); }
void f(constint v) { x = v; Print("(const) x = v "); }
// void f(int v) { x = v; Print("x = v "); } // 'f' - function already defined and has body
};
A a;
//+------------------------------------------------------------------+voidOnStart()
{
int y = 1;
constint z = 2;
a.f(3);
a.f(y);
a.f(z);
}
//+------------------------------------------------------------------+
class A {
private:
int x;
public:
void f(int v) const { Print("const"); }
void f(constint v) { x = v; Print("(const) x = v "); }
// void f(int v) { x = v; Print("x = v "); } // 'f' - function already defined and has body
};
A a;
const A b;
//+------------------------------------------------------------------+voidOnStart()
{
int y = 1;
constint z = 2;
a.f(3);
a.f(y);
a.f(z);
b.f(3);
b.f(y);
b.f(z);
}
class A {
private:
int x;
public:
void f(int v) const { Print("const"); }
constvoid f(int v) { x = v; Print("(const) x = v "); }
};
A a;
const A b;
//+------------------------------------------------------------------+voidOnStart()
{
int y = 1;
constint z = 2;
a.f(3);
a.f(y);
a.f(z);
b.f(3);
b.f(y);
b.f(z);
}
2019.09.13 22:04:34.295 tst (EURUSD,H1)(const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1)(const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1)(const) x = v
这都是可以理解的。不清楚为什么SetSaveRequired()和GetSaveRequired()是非静态的,而是写到一个静态变量。
我不明白,这就是为什么我请求帮助。 我很少使用修改器,更直观,但我总是希望得到最好的解决方案。
让我在代码中试一下,它是这样的
公共的GetSaveRequired()被用在一个类中,用来管理所有这些策略的zoo
在这种模式下,我只写了NextStepStrategy 方法--只有其中的TC有变化,其他都是一样的,因此在基类 CStrategy中 我收集了所有的方法和所有的字段--它们并不多。
ZS:用我的背,我觉得不是王牌我的代码,但它肯定会工作,不会产生重复的变量f_save_required。
这就是我不明白的地方,这就是我请求帮助的原因。 我很少使用修改器,我更多的是凭直觉使用,但像往常一样,我希望有最好的解决方案
让我在代码中试一下,它是这样的
公共的GetSaveRequired()被用在一个类中,以管理所有这些策略的zoo。
在这种模式下,我只写了NextStepStrategy 方法--只有其中的TC有变化,其他都是一样的,所以在基类 CStrategy中 我收集了所有的方法和所有的字段--它们并不多。
ZS:用我的背,我觉得不是王牌我的代码,但它肯定会工作,不会产生重复的变量f_save_required。
我将完全删除这些功能。
所有不改变结构的函数,使它们成为常数。
所有非常量函数都应该设置写标志。
我还会添加Save( int fileHandle )函数。这个函数应该写入结构并重置标志。
你可以做一个静态函数来获取标志的状态。
我将完全删除这些功能。
使所有不改变结构的函数成为常量。
所有非常量函数都应该设置写标志。
我告诉你,我对一般的修饰语有困难。
SZY:与此同时,在网络上的编程讨论中,一般会出现什么情况--上个月在hobber上有一篇关于const的文章,意思是--这个const是没有必要的,看汇编代码没有const也是一样的--编译器会把它全部拿走((
我告诉你,我对一般的修饰语有困难。
我上网查了一下,读了一下,又出问题了......。
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
搜索,阅读,又出错了......。
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
2019.09.13 21:10:54.316 tst (EURUSD,H1) x = v
这是一个常量类的重载。
嗯......对了,我花了近半个小时阅读中心和论坛,但我无法掌握它的窍门。
谢谢!现在我明白了
仍然有这样一个例子的疑点。
2019.09.13 22:04:34.295 tst (EURUSD,H1) (const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1) (const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1) (const) x = v
2019.09.13 22:04:34.295 tst (EURUSD,H1) const.
2019.09.13 22:04:34.295 tst (EURUSD,H1) const.
2019.09.13 22:04:34.295 tst (EURUSD,H1) const.
我可以下载当前的讲义。当然,到目前为止,都是些琐碎的东西。
我现在正在听一个关于OOP的讲座。 (也许我会分享我将学到的东西))
我可以下载当前的讲座。当然,到目前为止,都是些琐碎的东西。
好吧,你的讲座很可能是用胡言乱语,而在这里你几乎学不到任何俄语,你已经在互联网上转了三圈......。 总体情况是严峻的,就像在论坛上一样,真正的程序员--资源上不超过10个人,其余的都是怪人。
好了,整体情况已经理清了const,我和其余的修改者一起工作,所以我有很多理论 ...我需要应用它,但我觉得自己像个学生)))。
好吧,你的讲座很可能是用胡言乱语,而在这里你几乎学不到任何俄语,你已经在互联网上转了三圈......总体情况与论坛上的情况类似,真正的程序员不超过10人,其余的都是怪人。
好了,整体情况已经清除了const,我已经和其余的修改者合作了,所以我已经有足够的理论...我觉得自己像个学生)))。
是的,我也有类似的情况。学习并不难,难的是重新训练,打破旧习惯。我仍然无法摆脱程序化编程的许多坏习惯。
我想举个例子,我告诉你,我根本不擅长使用修饰语。
SZY:此外,在一般的恐怖什么是怎么回事在网络上的编程讨论 - 这里是一个关于const的文章上个月,霍伯的意思 - 是的,这个const是没有必要的,看汇编代码没有不同,没有const - 编译器将删除一切(())。
你现在可以简单地忘记常数和静力学。在接口方面也是如此。
当一切准备就绪后,就可以把一些东西标记为静态的,一些东西标记为常量的。 然后你就可以完全忘记接口。