Python:
class MyClass:
def __init__(self):
self.name = "Default"
def setName(self,name):
self.name = name
def getName(self):
return self.name
def changeName(obj):
obj.setName("Bob")
if __name__ == '__main__':
cl = MyClass()
changeName(cl)
print(cl.name)
执行结果:
C++:
#include <iostream>
#include <string>
using namespace std;
class MyClass
{
public:
MyClass()
{
name = "Default";
}
string getName() const;
void setName(const string &value);
private:
string name;
};
void changeName(MyClass cl){
cl.setName("Bob");
}
void changeName2(MyClass &cl){
cl.setName("Bob2");
}
void changeName3(MyClass *cl){
cl->setName("Bob3");
}
void changeName4(MyClass * const &cl){
cl->setName("Bob4");
}
int main(int argc, char *argv[])
{
MyClass cl;
cout<<cl.getName()<<endl;
changeName(cl);
cout<<cl.getName()<<endl;
changeName2(cl);
cout<<cl.getName()<<endl;
changeName3(&cl);
cout<<cl.getName()<<endl;
changeName4(&cl);
cout<<cl.getName()<<endl;
return 0;
}
string MyClass::getName() const
{
return name;
}
void MyClass::setName(const string &value)
{
name = value;
}
执行结果: