C++ 编写此类程序的最佳方式”;“编写代码”:Qt

C++ 编写此类程序的最佳方式”;“编写代码”:Qt,c++,qt,C++,Qt,你们能帮我回答这些问题并给出你们的意见吗 1-假设我想创建一个窗口,可以计算“任何窗口”的内容,如果我在构造函数中编写大部分内容,而不是创建一个函数来为我执行,然后在constrator中调用它,可以吗?或者哪种方法更好 2-假设我有一个数组或qvector或任何东西,可能有+30个元素,这些元素是常量,可能像保存主题名称一样“我想插入名称而不是用户”,这样初始化是否被认为是不好的: s[0]=".." s[1]="...." std::ifstream in{"names.cfg&

你们能帮我回答这些问题并给出你们的意见吗

1-假设我想创建一个窗口,可以计算“任何窗口”的内容,如果我在构造函数中编写大部分内容,而不是创建一个函数来为我执行,然后在constrator中调用它,可以吗?或者哪种方法更好

2-假设我有一个数组或qvector或任何东西,可能有+30个元素,这些元素是常量,可能像保存主题名称一样“我想插入名称而不是用户”,这样初始化是否被认为是不好的:

s[0]=".."
s[1]="...."
std::ifstream in{"names.cfg"};

QVector<std::string> names;
std::string current_name;

while (std::getline(in, current_name))
    names.push_back(current_name);

因为名称会改变,所以我不能使用循环。

1-是的,在构造函数中完成所有工作是不好的做法。构造函数用于初始化对象,而不是保存整个应用程序

2-有关初始化
QVector
的信息,请参见以下内容:。。。应该也适用于
QString
,而不仅仅是
int

1-假设我想创建一个窗口,可以计算“任何窗口”的内容,如果我在收缩器中写入大部分内容,而不是创建一个函数来为我执行该操作,然后在收缩器中调用它,可以吗?或者哪种方法更好

我想告诉你,任何函数都应该是小的,而不仅仅是构造函数。也许会有帮助

2-假设我有一个数组或qvector或任何东西,可能有+30个元素,这些元素是常量,可能像保存主题名称一样“我想插入名称而不是用户”,这样将其日化是否被认为是不好的:

s[0]=“.”s[1]=“…”

因为我不能使用循环,因为名称会改变

考虑在外部配置文件中指定这些值,然后在应用程序启动时加载(即解析)。也就是说,不要有太多这样的陈述

s[0] = "john doe"
s[1] = "jane doe
// ...
将这些名称放在一个文件中,比如说
names.cfg
,然后像这样填写您的
QVector

s[0]=".."
s[1]="...."
std::ifstream in{"names.cfg"};

QVector<std::string> names;
std::string current_name;

while (std::getline(in, current_name))
    names.push_back(current_name);
{“names.cfg”中的
std::ifstream;
矢量名称;
std::字符串当前名称;
while(std::getline(in,当前_名称))
名称。推回(当前名称);

免责声明:我不是Qt专家,但我认为使用
QVector
是有效的。

谢谢你的帮助。谢谢你的帮助,我按照你说的做了,并将信息放在文本文件中,然后使用qfile阅读。