Dies ist eine einfache Sache, die ich nicht sicher bin, ob es in C++ wie in einigen anderen Sprachen möglich ist. Das Ding verhält sich wie eine Kopie, aber nicht dasselbe Objekt. Ich würde erwarten, dass, wenn dies Struct war, oder ein anderer Werttyp - dies wäre das erwartete Verhalten, aber für die Klasse, erwartete ich, dass dies so verhält, als ob ich "Referenz", das ist - das gleiche Objekt wie im Array ist . Was mache ich falsch?Wenn ein Klassenelement von Array geändert wird, verhält es sich wie eine Kopie, keine Referenz
// Example program
#include <iostream>
#include <string>
class someclass
{
public:
void setn(int n2);
int n=10;
};
void someclass::setn(int n2){
n=n2;
};
int main()
{
someclass moreofthem[5];
someclass my=moreofthem[1];
std::cout << "start value: " << my.n << " as inital\n"; //10
my.setn(2);
std::cout << "new value: " << my.n << " as expected\n"; //2
std::cout << "value in list: " << moreofthem[1].n << " why?\n"; //10?
}
scheint wie du denkst 'class' und' struct' sind zwei verschiedene Konzepte in C++. Sie sind nicht. Der einzige Unterschied ist ihre Standard-Zugriffsspezifizierer – user463035818
Ich sehe jetzt. Nun, ich hatte etwas Erfahrung mit.NET, und ich habe versucht, mit C++ mit den gleichen Konzepten zu spielen, aber wird offensichtlich nicht so funktionieren. – nekitip