当在多个函数范围中使用变量时,我应该在类private中声明它吗?

时间:2018-04-29 09:46:39

标签: c++ qt

我们说这里有三种方法:

方法1:

SELECT * FROM job, location 
WHERE location.region = 'Central Coast' 
OR location.region = 'Hunter Valley' 
OR location.region = 'Illawarra' 
AND job.location_id = location.id

因为我可能必须更换多个参数,所以该行非常长,为了使函数更具可读性,我使用方法2:

方法2:

void function_1() {
    QString("%1").arg(QDate::currentDate().toString("MM/dd/yy"));
}
void function_2() {
    QString("%1").arg(QDate::currentDate().toString("MM/dd/yy"));
}

但是我注意到在我的许多函数中需要使用void function_1() { QString currentDate = QDate::currentDate().toString("MM/dd/yy"); QString("%1").arg(currentDate); } void function_2() { QString currentDate = QDate::currentDate().toString("MM/dd/yy"); QString("%1").arg(currentDate); } ,即使有人说QString currentDate,如果我这样做,这意味着我必须在每个函数中编写相同的代码。因此,我应该使用方法3来设置Variables should be declared as locally as possible中的QString currentDate

方法3:

class private

2 个答案:

答案 0 :(得分:1)

人们说正确的变量应尽可能在本地声明,因为这可以消除未来不同变量之间的潜在冲突(这成为一个问题,尤其是在拥有数千行代码的大型项目中)。

我会在QString currentDate之外定义function,然后将其作为参数提供给function_1()function_2(),因为这会删除重复的代码。< / p>

答案 1 :(得分:1)

如果require_once将在构造函数中计算一次,那么该值将在变量的生命周期内保持不变。

在这种情况下,如果变量不会在几天内生存,那么没问题。

但是如果它(例如23:59:59 - > 00:00:00)那么正确的方法是声明一个函数:

currentDate

考虑将此函数设置为静态,因为它不会调用类中的任何函数和变量。