评论会员:游客 时间:2012/02/06
Stefan_Lang:我喜欢菲利普莫里斯解决方案更好,但这里是一个候补:codeprelang="c++"spanclass="code-keyword"class/spanVector2D{spanclass="code-comment"///spanspanclass="code-comment"...yourstuffgoeshere/span};spanclass="code-keyword"const/spanVector2Dnull_vector;spanclass="code-comment"///spanspanclass="code-comment"implicitelycallsdefaultconstructor/spanspanclass="code-keyword"bool/spanCanShoot(spanclass="code-keyword"const/spanVector2D&target=null_vector){spanclass="code-comment"///spanspanclass="code-comment"...yourcodehere/span}/pre/code的:菲利普・森
根据标准,它是非法的非const引用绑定到一个临时对象。 Visual Studio会错误地允许,但在第4级警告。
因此,函数应该被声明为:
{体C3}
然而,这将是最好添加在这种情况下超负荷:
{的C4}
这有可隐藏在实施"默认值"的优势。它可以允许进行一些优化
评论会员:游客 时间:2012/02/06
。mbue:看不出有任何问题:{C5的}问候:查克・奥图尔
的Vector2D()是在你的榜样,类的Vector2D的构造。你不能显式调用构造。相反,构造函数被调用时自动实例化一个类的对象。例如:{5233}或A类的构造函数的声明
Vector2D bar;
有一些编译器提供了,你不能隐藏参数