Используя C++ как C. Наличие цикла создавать-и-выпускать в коде.
В C++, это не безопасное исключение, и таким образом выпуск не может быть выполнен. В C++ мы используем RAII для решения этой проблемы.
Все ресурсы, которые имеют руководство, создают, и выпуск должен быть обернут в объект, таким образом, эти действия сделаны в конструкторе/деструкторе.
// C Code
void myFunc()
{
Plop* plop = createMyPlopResource();
// Use the plop
releaseMyPlopResource(plop);
}
В C++, это должно быть обернуто в объект:
// C++
class PlopResource
{
public:
PlopResource()
{
mPlop=createMyPlopResource();
// handle exceptions and errors.
}
~PlopResource()
{
releaseMyPlopResource(mPlop);
}
private:
Plop* mPlop;
};
void myFunc()
{
PlopResource plop;
// Use the plop
// Exception safe release on exit.
}
&
всегда вычисляется в строковом контексте, в то время как +
может не объединяться, если один из операндов не является строкой:
"1" + "2" => "12"
"1" + 2 => 3
1 + "2" => 3
"a" + 2 => type mismatch
Это просто скрытый источник потенциальных ошибок, и поэтому его следует избегать. &
всегда означает «конкатенацию строк», даже если его аргументы не являются строками:
"1" & "2" => "12"
"1" & 2 => "12"
1 & "2" => "12"
1 & 2 => "12"
"a" & 2 => "a2"
Есть функция конкатенации. Например,
=CONCATENATE(E2,"-",F2)Но оператор & всегда объединяет строки. + часто будет работать, но если в одной из ячеек есть число, это не будет работать должным образом.