Generalnie chodzi o to, że nie do końca rozumiem, dlaczego przy zwracaniu statica przez wartość tworzy się gdzieś kopia. Tak jak w poniższym przykładzie:
include <iostream>
using namespace std;
class Test
{
public:
Test(){cout << "Oryginal." << endl;}
Test(const Test& copy)
{
cout << "Kopia." << endl;
}
};
Test foo()
{
static Test test;
return test;
}
int main()
{
foo();
return 0;
}
W outpucie wychodzi:
Oryginal.
Kopia.
Pytanie dlaczego jest wywolywany konstruktor kopiujacy? Oczywiscie bez statica tego zjawiska nie ma.
fasadin