gpt4 book ai didi

c++ - 假设没有公共(public)代码,将公共(public)代码移动到基类是好习惯吗?

转载 作者:太空狗 更新时间:2023-10-29 23:50:16 24 4
gpt4 key购买 nike

我需要打印定期报告和批量报告。我正在使用 podofo 库。我计划为每个报告使用单独的类,但每个类都需要下面的一些通用函数(现在在另一个项目的一个类中)。

int CPdfBatchReport::CalculateMaxRowsInEmptyPage(void)
{
int rows = MaxPageHeight / PDF_TABLE_STANDARD_ROW_HEIGHT;

// because the first will always be the column header in every page, we substrct 1 to account for that
rows = rows - 1;

return rows;
}

// Calculates the max rows in current page. The current page is determined
// by the current x, y position
int CPdfBatchReport::CalculateMaxRowsInCurrentPage(void)
{
float AvailablePageHeight = pPage->GetPageSize().GetHeight() - PDF_BOTTOM_MARGIN - y;

int rows = AvailablePageHeight / PDF_TABLE_STANDARD_ROW_HEIGHT;

// because the first will always be the column header in every page, we substrct 1 to account for that
rows = rows - 1;

return rows;
}


void CPdfBatchReport::StartPage(void)
{
x = PDF_LEFT_RIGHT_MARGIN;
y = PDF_TOP_MARGIN;
}

用这个公共(public)代码创建一个基类并在派生类中进行实际打印是否有意义?这是一个好的做法吗?

所以基本上我会让基类 PrintBase 包含上面的函数以及它的两个派生类 PrintBatchReportPrintItemReport实际上将使用这些功能。

最佳答案

是的,将通用代码放在基类中绝对是个好主意。 “不要重复自己”——干巴巴的——是一种很好的编程风格。避免复制粘贴编程。

您唯一不想在基类中包含内容的情况是当它是接口(interface)类时。但在这种情况下情况似乎并非如此。

关于c++ - 假设没有公共(public)代码,将公共(public)代码移动到基类是好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32831991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com