我仍然在学习C++中的OOP基础知识,并且在使用转换构造函数创建运算符方法时出现了一个问题.
这是我的代码:
头文件:
class Integer {
private:
int num;
public:
Integer();
Integer(int);//Convert constructor
~Integer();
operator int();
int getNum();
};
Run Code Online (Sandbox Code Playgroud)
源文件:
Integer::operator int() {
return this->num; //No idea why I need to specify this-> here.
}
Run Code Online (Sandbox Code Playgroud)
main 方法:
Integer a(50);
a = 100;
int b = (int)a;
cout << b << endl;
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,为什么我需要this->在operator int()方法上使用?我没有传递任何冲突的参数,所以它不应该是编译器的问题.我也没有测试它,它工作正常.但在我的教科书中,我明确地说它应该添加this->num.
有任何想法吗?
我已经阅读了文档,但仍然不太了解。根据它,它会根据我自己的规格在集合中返回特定的文档。对于分组,它几乎说了同样的话:“按某些指定的表达式对文档进行分组,并为每个不同的分组将文档输出到下一阶段”
那么,以下代码实际上在做什么?对我来说似乎多余。
BillingCycle.aggregate([{
$project: {credit: {$sum: "$credits.value"}, debt: {$sum: "debts.value"}}
}, {
$group: {
_id: null,
credit: {$sum: "$credit"}, debt: {$sum: "debt"}
}
}, {
$project: {_id: 0, credit: 1, debt: 1 }
}]});
Run Code Online (Sandbox Code Playgroud)