一.直接传值
通过在外部函数重新定义一个对象是main函数中定义对象的副本,再在调用外部函数的时候传入对象名即可,使用时用副本名.参数名obj.value 即可.
class MyClass {
public:
int value;
MyClass(int v) : value(v) {} //构造函数初始化
};
void external(MyClass obj) {
// 在这里操作定义 obj,它是 MyClass 对象的副本
cout << "Value inside function: " << obj.value << endl;
}
int main() {
MyClass myObject(42);
external(myObject); // 通过值传递对象
return 0;
}
/*对象的副本:
在C++中,对象的副本指的是一个对象的状态(即其数据成员的值)被复制到另一个对象中,从而创建出一个新的、与原对象具有相同状态的对象*/
二.通过引用传递
class MyClass {
public:
int value;
MyClass(int v) : value(v) {} //构造函数初始化
};
void myfunction(MyClass&obj)
{
obj.vakue=10;//修改的是原始对象
}
int main(){
MyClass myobj(5);
myfunction(myobj);//传递对象引用
cout<<myobj.value;//输出10
return 0;
}