奇怪的关于匿名对象的2个问题,帮忙看下!
#include <iostream>
#include <string>
using namespace std;
class Test
{
public:
Test(string* p)
{
cout < < "ok " < <endl;
}
};
int main()
{
string a;
//Test(&a); // 想创建一个匿名对象,为什么编译不过?(vs2005)
Test(&string()); // 这样可以编过,但为什么构造时没有输出 "ok "?
return 0;
}
[解决办法]
Test(&a); => (Test(&a));
[解决办法]
Test(&a) 等价于 Test &a;一个未初试化而且重名的引用。
Test(&string()) 没看明白,麻烦楼下的解释。