当前位置:  开发笔记 > 编程语言 > 正文

运算符ThisClass()导致堆栈溢出

如何解决《运算符ThisClass()导致堆栈溢出》经验,为你挑选了1个好方法。

我想保持类简单,没有定义构造函数,所以我可以做Pt data = {0,5}; 所以我认为将Pt_t从短到长转换为最好的方式反之亦然就是做这样的事情.

template 
struct Pt_t
{
    T x, y;
    template  operator Pt_t() { Pt_t pt = {x, y}; return pt; }
};

编译器不喜欢这样,并在返回pt时调用运算符Pt_t; 从而获得堆栈溢出.我该如何防止这种情况?我能想到的唯一解决方案是让Pt_t使用构造函数去除Pt_t pt = {1,2}; 如果可以,我宁愿保留.



1> eduffy..:

我很确定你的函数体中的不合格Pt_t是Pt_t,但是你不想要它Pt_t吗?您需要明确限定它.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有