gpt4 book ai didi

c++ - 只需一次在方法中设置变量的值

转载 作者:行者123 更新时间:2023-11-30 03:22:12 24 4
gpt4 key购买 nike

我有这个方法:

bool CDemoPickerDlg::IsStudentTalk(CString strAssignment)
{
bool bStudentTalk = false;

CString strTalkMain, strTalkClass;

if (theApp.UseTranslationINI())
{
strTalkMain = theApp.GetSMMethod(_T("IDS_STR_HISTORY_TALK_MAIN"));
strTalkClass = theApp.GetSMMethod(_T("IDS_STR_HISTORY_TALK_AUX"));
}
else
{
strTalkMain.LoadString(IDS_STR_HISTORY_TALK_MAIN);
strTalkClass.LoadString(IDS_STR_HISTORY_TALK_AUX);
}
int iTalkMainLen = strTalkMain.GetLength();
int iTalkClassLen = strTalkClass.GetLength();

if (strAssignment.Left(iTalkMainLen) == strTalkMain ||
strAssignment.Left(iTalkClassLen) == strTalkClass)
{
bStudentTalk = true;
}

return bStudentTalk;
}

它被多次调用。 没有 在类中添加“成员变量”来缓存值是否有任何其他方法可以为两个 CStringint 值创建值一次?因为它们在计划期间不会改变。

上面的方法是static。我知道如何为静态变量赋值,但我知道这只能在声明时一次完成。我是否误解了这一点?

最佳答案

您可以使用 static常量(或变量,但如果它不应该被改变,为什么要让它成为变量呢?)在函数范围内:

static CString const someImmutableText = <some initializer>;

占位符 <some initializer> above 可以是文字、函数调用或您可以从中初始化 CString 的任何其他表达式。 static确保对象只创建一次,随后也只初始化一次。

关于c++ - 只需一次在方法中设置变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51340072/

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