これはC++で他の言語のようにできるかどうかわかりません。物はコピーのように振る舞いますが、同じオブジェクトではありません。私はこれが構造体、または他の値型の場合、これは予想される動作ですが、クラスに対しては、私は "参照"を見ているように振舞うと期待していました。つまり、同じオブジェクトが配列にあります。私は間違って何をしていますか?オブジェクトmy
がmoreofthem[1]
のコピーではなく、リファレンスであるためだ配列のclass要素が変更されたとき、参照ではなくコピーのように振る舞う
// 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?
}
あなたは 'class'と' struct'はC++の2つの異なる概念だと思うようです。ではない。唯一の違いは、デフォルトのアクセス指定子 – user463035818
です。まあ、私はいくつかの経験がありました。NETと私は同じ概念を使用してC + +でプレイしようとしましたが、明らかにそのように動作しません。 – nekitip