2017-09-13 137 views
-6

遇到错误试图让下面的代码工作返回模板类型

template<typename var> 
struct Point 
{ 
    var x; 
    var y; 

    constexpr Point() : x(0), y(0) { 
    } 
    constexpr Point(const var _x, const var _y) : x(_x), y(_y) { 
    } 
    var GetX() const { return x; } 
    var GetY() const { return y; } 
}; 

template<typename var> 
struct Rect 
{ 
    var x, y; 
    var w, h; 

    constexpr Rect() : x(0), y(0), w(0), h(0) { 
    } 
    constexpr Rect(const var _x, const var _y, const var _w, const var _h) : x(_x), y(_y), w(_w), h(_h) { 
    } 

    var Left() const { return x; } 
    var Right() const { return x + w; } 
    var Top() const { return y; } 
    var Bottom() const { return y + h; } 
    Point<var> LT() const { return Point<var>(x, y) }; 
    Point<var> RT() const { return Point<var>(x + w, y) }; 
    Point<var> LB() const { return Point<var>(x, y + h) }; 
    Point<var> RB() const { return Point<var>(x + w, y + h) }; 
}; 

的点< VAR>在我的结构矩形的回报似乎是造成很多难以理解的错误。有人会碰巧知道这样做的正确方法吗?

+1

哪些错误?它有助于将它们包含在问题中。 – chris

+0

令人惊讶的是,您不会将整个错误粘贴到您的问题中,这是一种标准做法,考虑您在此处的体验 –

+0

@chris我没有包含错误,因为它似乎对问题没有什么价值。 MSVC吐出的确切错误是任何包含上述文件的文件都有语法错误,而不会显示与上述文件相关的错误。 我觉得添加错误只会使问题混乱,并增加混淆,人们会问我包括MSVC正在讨论的其他文件,而我可以清楚地看到其他文件没有任何问题。如果人们愿意,我不管添加错误,请让我知道。 – dk123

回答

4

有后无分号:

return Point <var> (x,y) 
+0

谢谢你的回答。虽然在看到这个答案后,我马上去了'阿',并意识到我犯了一个错误是多么的粗心大意,如果回答者没有发布这个消息,我可能会花上几个小时。谢谢! – dk123

+0

但是,经过4年多的StackOverflow后,我发现看到有多少人现在更喜欢根据一般规则和预先形成的观点投票回答问题,而不想帮助面临困难的人。再次感谢您成为少数仍然优先考虑帮助的例子 - 这真的有所帮助。 – dk123

+0

@ dk123感谢您的评论,我不太了解一般规则,因为从我开始堆栈溢出已经有一段时间了,但我也认为可以让他们认为你的问题不是好问题。所以我希望你不要介意他们 –