(Mql4) What differentiates a "Method" from a "Constructor"?
(Mql4) What differentiates a "Method" from a "Constructor"?
Loading saved threads...
30-Dimensions- · External communityPost link
External question — Stack Overflow Stack Exchange
Author: 30-Dimensions-
Original post: https://stackoverflow.com/questions/69830874
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
My question refers to Methods inside of Classes via "public" access.
As referring to mql4 documentation, there seems to be no listed source on how to properly instantiate a Method into a Class, or what even makes a Method a Method in the first place.
To me it seems that if you place a function inside of a Class, that in itself makes it a Method? Or am I wrong. Is anyone able to clear this up for me?
Quote
Report
tomgny · External communityPost link
External answer — Stack Overflow Stack Exchange
Author: tomgny
Original post: https://stackoverflow.com/a/69865291
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
Basic information and differences between
constructor
and
method
:
Constructor:
A constructor is a special function, which is called automatically when creating an object of a structure or class and is usually used to initialize class members,
The name of a constructor must match the class name,
The constructor has no return type (you can specify the void type).
(
docs
)
Method:
A method is a function that belongs to a class or an object, i.e. it cannot exist without the class.
You need to declare class methods in the class. Else it wouldn't be a class method.
Method can return value with type specified in the method declaration.
Simple example:
class MyClass { // Declaration
private:
string myName; // Property
public:
void printName(); // Method of void return type
int sumIntegers(int a, int b); // Method of int return type
MyClass(string name); // Constructor declaration
};
MyClass::MyClass(string name) { // Constructor body
this.myName = name;
}
int MyClass::sumIntegers(int a, int b) { //Method body
return a + b;
}
void MyClass::printName() {
Print("Your name is: ", this.myName);
}
int sumIntegers(int a, int b){ //Function body
return a + b;
}
Class member (object) initialization:
MyClass *myObject = new MyClass("SO example");
Example usage inside
OnInit
:
int OnInit() {
myObject.printName(); // Method call by object (MyClass)
Alert("2 + 2 = ", myObject.sumIntegers(2, 2)); // Same as above
Alert("2 + 2 = ", sumIntegers(2, 2)); // Function call
return(INIT_SUCCEEDED);
}
To me it seems that if you place a function inside of a Class, that in
itself makes it a Method?
Yes, but remember that a
function
is a block of code which only runs when it is called, and it's not related with a class.
Methods
are related with class, and can not exists without a class.
Quote
Report
Post Reply
Quoted from Forex.com.bd-Editorial External answer — Stack Overflow Stack Exchange Author: tomgny Source score (net votes, not local likes): 0 Original post: https://stackoverflow.com/a/69865291 License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/ Adaptation: HTML converted to plain text; contact email addresses removed. Basic information and differences between constructor and method : Constructor: A constructor is a special function, which is called automatically when creating an object of a structure or class and is usually used to initialize class members, The name of a constructor must match the class name, The constructor has no return type (you can specify the void type). ( docs ) Method: A method is a function that belongs to a class or an object, i.e. it cannot exist without the class. You need to declare class methods in the class. Else it wouldn't be a class method. Method can return value with type specified in the method declaration. Simple example: class MyClass { // Declaration private: string myName; // Property public: void printName(); // Method of void return type int sumIntegers(int a, int b); // Method of int return type MyClass(string name); // Constructor declaration }; MyClass::MyClass(string name) { // Constructor body this.myName = name; } int MyClass::sumIntegers(int a, int b) { //Method body return a + b; } void MyClass::printName() { Print("Your name is: ", this.myName); } int sumIntegers(int a, int b){ //Function body return a + b; } Class member (object) initialization: MyClass *myObject = new MyClass("SO example"); Example usage inside OnInit : int OnInit() { myObject.printName(); // Method call by object (MyClass) Alert("2 + 2 = ", myObject.sumIntegers(2, 2)); // Same as above Alert("2 + 2 = ", sumIntegers(2, 2)); // Function call return(INIT_SUCCEEDED); } To me it seems that if you place a function inside of a Class, that in itself makes it a Method? Yes, but remember that a function is a block of code which only runs when it is called, and it's not related with a class. Methods are related with class, and can not exists without a class.
Checking account access…