Jam*_*nco 5 c++ most-vexing-parse
我正在阅读这篇文章
第3项中有一条声明说
// C++98
rectangle w( origin(), extents() ); // oops, vexing parse
Run Code Online (Sandbox Code Playgroud)
以上是一个最令人烦恼的解析.如果我做了这样的事情
struct origin
{
};
struct Rectangle
{
Rectangle(const origin& s)
{
}
};
Run Code Online (Sandbox Code Playgroud)
该声明
Rectangle s(origin());
Run Code Online (Sandbox Code Playgroud)
工作得很好,并不像一个令人讨厌的解析.为什么作者说这是一个令人烦恼的解析.这是一个错字还是我错过了什么?
Rectangle s(origin());是一个令人烦恼的解析.它声明了一个s返回的函数,并将函数返回rectangle作为参数指针origin.不确定你的意思是"工作正常".
rectangle w( origin(), extents() );声明一个函数w返回rectangle并获取参数:指向函数返回的origin指针,以及指向函数返回的指针extents.
有关更多详细信息,请参阅此问题或浏览最烦恼解析标记下的其他问题.
| 归档时间: |
|
| 查看次数: |
357 次 |
| 最近记录: |