class按传递时分析

class FEF{
public:
	int a;
	FEF(int a,int b){
		this->a = a*b;
	}
};

void mam(FEF a){
	printf("%d A\n", a.a); //72
}

int _tmain(int argc, _TCHAR* argv[]){
    FEF f(34,2);
    printf("%d M\n", f.a); //72
    mam(f);
}

 c++的类按值方式传递会再次创建一个类,并用传来的类的初始化参数进行初始化

上面的代码

_tmain 的FEF 与 mam的 FEF 是两个不同的地址。

在c里如果struct以值的方式传递,会将当前struct的每项值赋值于新struct,C++里算是多了一步 初始化赋值。

void mam(FEF &a){
	printf("%d A\n", a.a); //72
}

 加了 与符号后(C++专用),可以按值传递,函数会去取其地址,成为变相按引用传递

 

 

 

 

 

posted @ 2013-12-20 17:51  晨祷  阅读(168)  评论(0编辑  收藏  举报