#include <iostream>
using namespace std;
class HelloWorld{
public :
void printMsg(){
cout << msg << endl;
}
void setMsg(string msg){
this->msg = msg;
}
private:
string msg;
};
void printNum(HelloWorld);
void printNum1(HelloWorld &);
void printNum2(HelloWorld *);
int main() {
HelloWorld hello;
hello.setMsg("begin");
printNum(hello);
hello.printMsg(); //begin
printNum1(hello);
hello.printMsg(); //from printNum1
printNum2(&hello);
hello.printMsg(); //from printNum2
}
void printNum(HelloWorld x){
x.setMsg("from printNum");
}
void printNum1(HelloWorld &x){
x.setMsg("from printNum1");
}
void printNum2(HelloWorld *x){
x->setMsg("from printNum2");
}
指针与引用的区别:
指针:是存放变量地址的一个变量,它可以被改变,包括 其所指向的地址 的改变和 其指向的地址中 所存放的数据的改变。
操作p时,是p的值,p值是存储的实参的内存地址整数,改变p并未改变实参的值。操作*p时是指向的内存地址,改变*p会影响实参的值。
引用:引用是一个别名,它的存在具有依附性,是对实参的引用。对形参的操作,会改变实参。