C++では、クラス・オブジェクトが参照として渡されるか、値として渡されるかは、関数の宣言と呼び出し方に依存する。

もし関数が、パラメータ・リストで'&'演算子を使用してクラス・オブジェクトを参照として受け取るように宣言されていれば、オブジェクトは参照として渡されます。例えば

void myFunction(MyClass& obj) { 
  // obj で何かを行う
}
この場合、'obj' パラメータは MyClass オブジェクトへの参照なので、関数内で 'obj' に加えられた変更は、渡された元のオブジェクトに反映されます。

しかし、関数が（'&'演算子を使わずに）クラス・オブジェクトを値として受け取るように宣言されている場合、オブジェクトのコピーが作成され、関数に渡されます。例えば

void myFunction(MyClass obj) {
  // obj で何かを行う
}
この場合、'obj'は渡された元のオブジェクトのコピーなので、関数内で'obj'に加えられた変更は元のオブジェクトには反映されません。

まとめると、C++でクラス・オブジェクトが参照として渡されるか値として渡されるかは、関数の宣言と呼び出しによって決まります。
In C++, whether class objects are passed in as reference or by value depends on how the function is declared and called.

If a function is declared to take a class object by reference using the '&' operator in the parameter list, then the object will be passed in as a reference. For example:

void myFunction(MyClass& obj) {
  // Do something with obj
}
In this case, the 'obj' parameter is a reference to a MyClass object, so any changes made to 'obj' within the function will be reflected in the original object that was passed in.

However, if a function is declared to take a class object by value (without using the '&' operator), then a copy of the object will be made and passed to the function. For example:

void myFunction(MyClass obj) {
  // Do something with obj
}
In this case, 'obj' is a copy of the original object that was passed in, so any changes made to 'obj' within the function will not be reflected in the original object.

So in summary, whether a class object is passed in as a reference or by value in C++ depends on the function declaration and call.