Недавно я читал, что если вы используете объект класса в качестве параметра получения функции, копия объекта должна создаваться автоматически.Поэтому, если деструктор включен в класс, и оригинальный объект, и его копия будут автоматически исчезать.Однако, когда я попытался сделать небольшой код с той же концепцией, деструктор активировался только один раз.Что может вызвать проблему?Заранее спасибо!
#include "stdafx.h"
#include <iostream>
using namespace std;
class MyClass {
int val;
public:
MyClass(int i)
{
val = i;
cout << "Constructor is in progress" << endl;
}
void SetVal(int i)
{
val = i;
}
int GetVal()
{
return val;
}
~MyClass()
{
cout << "Destructer is in progress" << endl;
}
};
void Display(MyClass obj)
{
cout << obj.GetVal();
}
int main()
{
MyClass a(10);
cout << "Before display()" << endl;
Display(a);
cout << "After display()" << endl;
system("pause");
return 0;
}