class按传递时分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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++里算是多了一步 初始化赋值。

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

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

 

 

 

 

 

posted @   晨祷  阅读(169)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示