void sum(int &i1, int &i2, int val)
{
i1 += val;
i2 += val;
}
int get_number(int &i1, int &i2)
{
return i1 + i2;
}
void main() // главная функция программы
{
int i1, i2;
sum(i1, i2, 56);
any_fn(get_number(i1, i2)); // какое-то действие с нашей суммой.
}
class QQ
{
int i1;
int i2;
public:
void sum(int val)
{
this->i1 += val;
this->i2 += val;
}
int get_number()
{
returnthis->i1 + this->i2;
}
};
void main() // главная функция программы
{
QQ q;
q.sum(56);
any_fn(q.get_number()); // какое-то действие с нашей суммой.
}
struct S {};
class QQ
{
S *p;
public:
QQ() {this->p = new S;}
~QQ() {deletethis->p;}
};
void main()
{
QQ q;
QQ q2 = q;
}
这将导致delete对同一个指针被调用两次。正确的方法是这样的
class QQ
{
S *p;
public:
QQ() {this->p = new S;}
~QQ() {deletethis->p;}
QQ(QQ &); // Только объявляем, определения нигде нет.
QQ &operator=(QQ &); // Только объявляем, определения нигде нет.
};
//илиclass QQ
{
S *p;
public:
QQ() {this->p = new S;}
~QQ() {deletethis->p;}
QQ(QQ &q) {this->p = new S(*q.p);}
QQ &operator=(QQ &q) {*this->p = *q.p;}
};
加。
我补充说))。
对于圆来说,它是以一种方式计算的,对于正方形来说则是另一种方式。但无论哪种情况--通过调用 Figura.GetSquare()。
和沉默......。
嗯,这是一个2x2=?
没有兴趣回答。
=================
也许这更接近。
类中有一套标准的虚拟方法:Open(), Close(), Read(), Write()等。
这样的类可以处理文件、映射、通道、互联网等。
只有这些方法的内容(描述)会有所不同。但类的接口将是相同的。
你不觉得这很可疑吗,这已经是关于这个问题的第三页了,却没有人举出一个代码点作为例子?
此外,回答这个问题并不有趣,它很初级,简单到懒得编码......
如果有人知道什么,我想他们会回答......
VOLDEMAR,如果你把你的第一个帖子,为什么那里会有一个类?编写类是程序复杂性的结果,当单个元素有许多外部链接时,就会创建一个类来统一所有这些元素并创建一个简单的接口。在我看来,一个类的必要属性是数据(int's, double's ...)--函数工作的材料,这个类将所有的东西连接在一个包里(数据和函数)。我认为这是OOP的基本思想。例如,两个例子,第一个没有OOP,第二个有OOP。
在第二个例子中,我们不必担心函数将与之工作的数据,我认为这是OOP的主要目的。
关于你的代码还有一句话。
... class vr_trade { ... ~vr_trade(){} }; ...
我有一个规则:永远不要把析构器写成空的。没有析构器是类的简单性指标。如果写了一个析构器,你可能要写一个拷贝构造器和=操作符,或者禁止它们。例子。
这将导致delete对同一个指针被调用两次。正确的方法是这样的
所以,如果你必须写一个析构器,这是个很好的理由,要三思而后行--如何处理歌剧=和复制构造器?删除它,写它......?我认为你不应该把析构器写成空的,它的缺失说明你不需要重做上述工作。
为什么第二个方法会抛出一堆错误和警告呢?
在这后面加一个点,而不是->。 mql芯片。
请解释这些行动
就是说
为什么要用符号(:),我们能得到什么?