以例如:
int main(void){
numberComparator comparator1;
comparator1.setA(78.321);
comparator1.showA();
comparator1.setB('c');
comparator1.setB("Yes");
comparator1.setB(124.213);
comparator1.showB();
comparator1.setB(12);
return 0;
}
不是一遍又一遍地说comparator1
,而是可以做些更短的事情吗?
我知道这并没有真正改变程序的工作方式,但它确实可以让我更容易地测试我制作的课程。
我正在进行重载,因此对于我的比较器中的各种输入,我的程序可以处理它们而不会使结果变得疯狂。在这种情况下,我希望输入为int
,但如果输入不是什么?
答案可能在互联网上,但正如我的标题可能推断,我不知道如何陈述问题。
答案 0 :(得分:6)
您正在寻找类似with
关键字的内容,例如Pascal语言。
不幸的是,C ++没有提供类似的功能。使用这些参考文献,可以缩短班级的名称,并在某种程度上减轻痛苦,即
Comparator comparator1;
...
{
Comparator& cr = comparator1;
cr.a();
cr.b();
cr.c();
}
答案 1 :(得分:4)
这取决于。如果numberComparator
具有“流畅”接口,则每个成员函数将返回对*this
的引用,您可以写:
comparator1
.setA(78.321)
.showA()
.setB('c')
.setB("Yes")
.setB(124.213)
.showB()
.setB(12);
请注意,这是一个通过步入调试的婊子(你必须进入每个函数,直到你找到你感兴趣的那个)。
另一种选择当然是“使用较短的名字”。
int main(void){
numberComparator c1;
c1.setA(78.321);
c1.showA();
c1.setB('c');
c1.setB("Yes");
c1.setB(124.213);
c1.showB();
c1.setB(12);
return 0;
}
如果将范围限制在几行中,那么拥有一个特别长的名称实在没有意义。对于局部变量,如果范围不限于几行,则函数可能太长。