class CExample { int param; public: CExample(); CExample(int x); ~CExample(); }
CExample::CExample(int x) { param = x; }
//..........вызов.............. //..где-то в тексте программы..
CExample *ex1 = new CExample; //создание с конструктором CExample(); CExample *ex1 = new CExample(); //создание с конструктором CExample(); CExample *ex1 = new CExample(value); //создание с конструктором CExample(int x);
new操作符 创建了一个类的实例,并与之一起调用构造函数。它被写在语法中,所以没有其他方法可以调用它。
我从这个例子出发。
粗略地说,这里没有括号(构造函数调用)。可能是我还没有理解到什么。这段代码与多重继承几乎没有区别。
事实上,类C_C可以通过适当的指针访问C_A和C_B的数据。我是根据这个例子来的。
这里,大致上说,没有括号(构造函数调用)。有可能是我还不了解一些情况。为什么是我,这不是给我的,是给中央洗衣店的,我没有用括号 :o)
我的编译器并没有抱怨缺少括号...
总之,突然出现了一个问题:什么是正确的方法?或者说,有无括号并无区别?
我的编译器并没有抱怨缺少括号...
总之,突然出现了一个问题:什么是正确的方法?还是说有无托架并无区别?
如果它在两个方面都能起作用,那就相当是一个语法统一的问题了。最主要的是,它不影响速度。
说实话,我没有检查过,我总是用括号写。
如果两边都能用,那就更多是语法统一的问题了。最主要的是不要影响速度。
说实话,我没有检查过,我总是用括号写。
我没有读过在MQL5中动态创建类对象 的描述,但在C++中,你可以不带括号(标准构造函数被调用)和带括号(构造函数被调用取决于括号中的参数)。例子。
class CExample
{
int param;
public:
CExample();
CExample(int x);
~CExample();
}
CExample::CExample(int x)
{
param = x;
}
//..........вызов..............
//..где-то в тексте программы..
CExample *ex1 = new CExample; //создание с конструктором CExample();
CExample *ex1 = new CExample(); //создание с конструктором CExample();
CExample *ex1 = new CExample(value); //создание с конструктором CExample(int x);
在mql5中,还没有参数可以传递给构造函数。
我没有读过在MQL5中动态创建类对象 的描述,但在C++中,你可以不带括号(标准构造函数被调用)和带括号(构造函数被调用取决于括号中的参数)。例子。
明白了,谢谢你的简单明了的解释。事实证明,圆括号是用于可能的参数。
而关于如何在MQL5中创建动态类对象的描述是非常简洁的。
MQL5参考 / 语言基础知识 / 操作符 / 对象创建操作符new
MQL5参考 / 语言基础知识 / 数据类型 / 对象指针