一个错字导致我偶然发现了一些我不理解的代码。它编译但我不知道为什么,也不知道它在做什么。基本上我最终初始化一个类,作为一个参数,而它应该期待一个类型的指针)。我在下面用一个简单的例子复制了它,有人可以解释这里发生了什么吗?请注意,两个构造函数似乎都没有运行。我也在使用gcc 4.8.4, with C++0x (-std=c++0x flag)
。
#include <iostream>
class Arg
{
Arg()
{
std::cout << "Arg constructor\n";
}
};
class Wrapper
{
private:
Arg* data;
public:
Wrapper(Arg* _data) : data(_data)
{
std::cout << "Wrapper constructor\n";
}
};
int main()
{
Wrapper wrapper(Arg); //I do not understand what this line is doing
//nor why it compiles
return 0;
}