uintFileReadStruct(
int file_handle, // handle файла constvoid& struct_object, // структура, куда происходит считывание int size=-1// размер структуры в байтах
);
struct X {
X( int i ) : i( i ) {}
constint i;
};
voidOnStart()
{
X x( 5 );
FileReadStruct( 0, x, -1 ); //(1) нормально ???
ZeroMemory( x ); //(2) Error: 'x' - not allowed for objects with protected members or inheritance
}
你自己报告了第四个错误。为什么ZeroMemory比{}差?也就是说,我们有一些未经授权的访问私有的机制,由于某种原因,编译器没有检测到。
你认为开发商不会解决这个问题吗?在一个时期,编译器对ZeroMemory 也没有反应
你自己报告了第四个错误。为什么ZeroMemory比{}差?也就是说,我们有一些未经授权的访问私人的机制,而编译器由于某种原因无法检测到。
我不认为这是个错误。该结构没有构造函数,但它正在被初始化。FileReadStruct - 这是一个非常可怕的东西...
我不认为这是个错误。该结构没有构造函数,它被初始化了。那么FileReadStruct就是一个相当可怕的东西。
从描述来看--这是 某种自欺欺人的行为
从描述来看,这 听起来像是某种自欺欺人的行为。
嗯,是的--这都是骗人的。
从描述上看,这是 某种自毁形象的行为
提到文件而不考虑复制粘贴的人工制品--奇怪。
链接到文档而不考虑复制粘贴的工件--奇怪。
我完全是第一次看到这个功能--他们可以通知我,在描述中存在一个错误
除了描述之外,还有一个结构性错误。
为什么ZeroMemory比FileReadStruct差?
另一个希望是开发者不会注意到它,会推迟它,或者懒得去修复它(强调这一点)?
我的论点很简单:ZeroMemory曾一度在编译时带有所有这些(包括私有的),但他们注意到了这一点,他们掌握了这一点并加以修正。
这是我第一次看到这个功能--他们可以告诉我描述中存在错误。
我从来没有看过这个功能的描述。从名字上看,一切都很清楚。
除了描述之外,还有一个结构性错误。
以下代码中没有错误。
厌倦不会赢过便利!
为什么ZeroMemory比FileReadStruct差?
你很喜欢提到文件。这说明了关于ZeroMemory的局限性的一切。但它没有说任何关于文件*的限制。至于ZeroMemory,我以我所得到的东西来判断。现在不方便了,但这似乎是故意的。
但如果你比较这两个函数,FileReadStruct只对简单的结构工作。这是一个根本的区别。
这个主题是关于MQL5的特殊性。我 指出了一个(它在MQL4中不起作用)。不幸的是,这种对话是在浪费时间
以下代码中没有错误。
你很喜欢参考文件。这说明了ZeroMemory在这方面的局限性。但它没有说任何关于文件*的限制。至于ZeroMemory,我靠的是我所拥有的。现在不方便了,但这似乎是故意的。
如果你比较这两个函数,FileReadStruct只对简单的结构工作。这是一个基本的原则差异。
有一个错误(目前编译器只是没有通知我们),它是这样的:类外部 的一些函数(即FileReadStruct)可以直接访问这个类的受保护成员,这与私有、保护的概念相矛盾。
那么这个函数比ZeroMemory和其他数百个函数 好在哪里呢?什么都没有!- 开发商只是还没有开始行动。ZeroMemory 之前也没有在文档中说明任何限制。但它现在就在那里--并不是因为它给你带来了一些不便--而是因为一个单一的原则在起作用--无论是FileReadStruct还是ZeroMemory,或者其他数百个类似的函数--都是平等的。
其他一百个类似的功能都是一样的
文件加载/文件保存到不平等箱。
方便是不会赢的!
没有理由向自己的脚开枪。
文件加载/文件保存更多的是在不平等的盒子里。
没有理由向自己的脚开枪。
是你在自取灭亡--通过宣布私有化。你对自己的访问是有限的,然后会想为什么需要公共访问的外部功能的代码突然停止工作了