//+------------------------------------------------------------------+//| Set the property value "SYMBOL_SELECT" |//+------------------------------------------------------------------+bool CSymbolInfo::Select(constboolselect)
{
return(SymbolSelect(m_name,select));
}
写作中的困难是什么?
SymbolSelect("Нужный символ", включить или выключить);
//+------------------------------------------------------------------+class CClass
{
//--- Приватные члены класса. Доступны только в объекте этого классаprivate:
int m_type; // Тип объекта//--- Защищённые члены класса. Доступны в объекте этого класса и его наследникахprotected:
string m_name; // Имя объекта//--- Публичные члены класса. Доступны вездеpublic:
void SetType(constint type) { this.m_type=type; }
int GetType(void) const { returnthis.m_type; }
void SetName(conststring name) { this.m_name=name; }
string GetName(void) const { returnthis.m_name; }
};
//+------------------------------------------------------------------+
CClass class_obj; // Объявили переменную class_obj с типом класса CClass. Теперь class_obj - это объект
我们创建一个对象和一个指向它的指针。
CClass *class_ptr = new CClass(); // Оператором new создали новый объект класса CClass, и в переменную class_ptr получили на него указатель. // Теперь в памяти сидит объект CClass, и получить к нему доступ можно по этому указателю, // и по этому же указателю обязательно удалить объект по завершении работы оператором delete
不过,我还是不明白OOP中的 "对象 "是什么。
它说 "一个对象是一个类的实例"。一个类可以有很多实例。但是,这些实例只是对类的引用。一个类包含字段。这些字段是对象的属性。方法是处理特定对象属性值的引擎元素。
在我的理解中,一个对象是一个命名(或编号)的属性集。财产价值由各种大块机制处理。这基本上是同一件事。只是写法不同。在OOP中,功能被分割开来,以便进行封装。在我这里,情况正好相反--功能的合并。
如果我们把问题变成一个图形区域,CButton类与我的元素Button相同。在我的实现中,它是内核中的三个对象,每个对象都有一些属性。在类中,它也是一个属性(字段)的列表,按钮的方法(我没有单独属于按钮的方法。按钮功能是在全局功能块内)。在这些块中,按钮被视为任何元素,但在某些地方它有自己的个人条件和处理程序。在OOP中,同样的按钮功能被封装在一个通过实例访问的类中。
乔治,在每个图书馆,每个解决方案中,都有一个概念。如果我采用别人的概念,并试图在其基础上发展我的概念,我可能会得到一个概念崩溃,因为建立在两个或更多概念上的系统不可能是稳定的。因此,创新的东西必须由自己开发,从头开始。以便不在其他作者的 "通用 "错误和不一致中挣扎。
彼得,你的争论是徒劳的。不可能证明什么。我也不理解这种编程方法,他们建议用CSymbolInfo 库来代替使用_Symbol,并写上object.Name()。
我不理解使用这样的方法,例如
写作中的困难是什么?
而且在这两种情况下都只有一行代码。
另一方面,Artyom向我展示了OOP的可能性,我在其中迷失了方向,什么都不懂,也不使用
没有那么多。
这里有另一种解释方式。通常没有人这样解释。
例如,所有程序员都知道 int x 是什么。
现在让我们想象一下,int 这个词就像一个类的名字。 那么它描述的是什么呢?
1. 一个整数
2. 在内存中占用4个字节
3. 在一定范围内取值+-。(这么多就够了)。
而当我们写 int x;时,我们声明一个对象x,int 类型。x 已经在RAM中物理上占据了一个4字节的字段。
彼得,你的争论是徒劳的。不可能证明什么。我也不理解这种编程方法,他们建议用CSymbolInfo库来代替使用_Symbol,并写上object.Name()。
我不理解使用这样的方法,例如
写作中的困难是什么?
在这两种情况下,只有一行代码。
另一方面,Artyom向我展示了OOP的可能性,我在其中迷失了方向,什么都不懂,也不使用
在这个变体的意义上,班级是工具、材料、原料和机器的仓库。继承类的层次结构--像 "工厂 "的车间。
彼得,你为什么要讲这些微妙的事情呢?
类是对一个对象、其属性以及设置和访问这些属性的方法的描述。
对象是指我们声明一个类类型的变量,或使用new操作符创建一个该类的新对象。
例如,这是一个班级。
它只有两个类成员--类型和名称。这些是它的属性。而且它还不是一个物体。这是一个计划,一个蓝图,一个蓝图...。的未来对象。
我们创建一个对象。
CClass class_obj; // Объявили переменную class_obj с типом класса CClass. Теперь class_obj - это объект我们创建一个对象和一个指向它的指针。
乔治,在每个图书馆,每个解决方案中,都有一个概念。如果我采用别人的概念,并试图在其基础上发展我的概念,我可能会得到一个概念崩溃,因为建立在两个或更多概念上的系统不可能是稳定的。 因此,创新的东西必须由自己开发,从头开始。以便不在其他作者的 "通用 "错误和不一致中挣扎。
只有七个(!) 音符。他们身上有多少音乐呢?而且没有作曲家考虑过崩溃的问题。他只是写了一些在灵魂中播放的音乐。他没有发明别的东西,而是使用这七个音符。
彼得,你为什么要讲这些微妙的事情呢?
类是对一个对象、其属性以及设置和访问这些属性的方法的描述。
对象是指我们声明一个类类型的变量,或使用new操作符创建一个该类的新对象。
例如,这是一个班级。
它只有两个类成员--类型和名称。这些是它的属性。而且它还不是一个物体。这是一个计划,一个蓝图,一个蓝图...。......的一个未来对象。
我们创建一个对象。
我们创建一个对象和一个指向它的指针。
一个类是对一个对象的描述。很好。包含该对象的属性和功能。好的。所有这些都是有序的,开放的或保护的。
那么物体本身就不在画面中了。它是在班级的范围内。从其名称和描述来看。也就是说,在OOP中,对象,正是一组属性(不仅是属性,还有功能元素--方法),但比我的更有秩序,更有封装性。(这对我来说更有意义)。
我不明白使用SB的方法,如
为何难写
OOP的概念本身就意味着不写--你不需要知道方法的实现(在你的例子中,返回(SymbolSelect(m_name,select))
想象一下,而不是这句话。
你必须做大量的查询和各种检查等。- 这将花费你的时间来编写你自己的库和研究材料
假设你的任务只是使用一个类形式的现成解决方案中的一个方法--你创建一个类(对象)的实例并使用现成的Select(const bool select)方法
如果你不打算执行这样的操作,释放内存=删除对象
假设你的任务是显示一个按钮,通过按下它,你可以启用/禁用市场观察中的符号------创建你的类并封装现成的按钮类和现成的CSymbolInfo类----任务完成了
OOP范式只给了你一般的信息,你可以对一个类做什么--如果你不想封装CSymbolInfo,你可以把它继承到你自己的类中。
HH:OOP的全部意义在于 快速解决一个给定的问题,而且不需要了解实现。
一个类是对一个对象的描述。很好。包含该对象的属性和功能。好的。所有这些都是有序的,开放的或保护的。
那么物体本身就不在画面中了。它是在班级的范围内。从其名称和描述来看。也就是说,在OOP中,对象,正是一组属性(不仅是属性,还有功能元素--方法),但比我的更有秩序,更有封装性。(这对我来说更有意义)。
你必须看书才能把事情说清楚。至少在21天内完成VC++。
我的建议是第一次使用MFC,在CDialog 的基础上创建一个windows应用程序,创建各种对象,看看它们是多么容易管理。
之后,你将丢弃你的风险。不幸的是。