boost::ref都是在什么时候使用哦
boost::ref都是在什么时候使用哦,不理解
比如: void func(int a); 如果使用:int a=0; func(boost::ref(a));这个最后传到函数里的还是值,也就是效果和直接func(a)效果一样的
比如: void func(int &a); 如果使用:int a = 0; func(boost::ref(a));这个使用效果也和直接调用func(a)一样
还有个问题哦
struct A
{
public:
A(int a) { i = a; }
private:
int i;
};
如果使用A(3); 编译没问题
如果使用int a = 3; A(a); 编译就会出错,报错:
error C2371: “a”: 重定义;不同的基类型
error C2512: “A”: 没有合适的默认构造函数可用
那这个A(a)到底做了什么 会报这个错,按道理说只是生成一个临时变量啊
望高人指点,谢谢