【发布时间】:2014-03-03 22:24:28
【问题描述】:
我正在使用别人编写的代码来计算化学反应。用户必须为计算指定许多值,这可能会导致错误。我正在尝试自动化/简化这个过程。
我可以通过以下方式实例化一个类(例如):
Algorithm<double> chlorine;
我想做多个实例化——例如,氯、氢和氧。我不明白为什么当我将“氯”、“氢”和“氧”作为元素放入名为“chemicalElements”的字符串向量中然后执行以下操作时会出现分段错误:
for (i = 0; i < chemicalElements.size(); i++)
{
Algorithm<double> chemicalElements[i].data();
}
我在这里遗漏了一些简单的东西吗?当我写的时候:
Algorithm<double> chlorine;
“chlorine”只是一个字符串,对吧?那么为什么从字符串向量中的元素中添加“氯”不起作用呢?
【问题讨论】:
-
请找一本关于 C++ 的教科书,从更简单的开始。当有更好、更合适的资源可供学习时,在 Stack Overflow 上询问语言的基础知识是没有效率的。
-
过去两周我一直在试图解决这个问题。我不经常使用 C++,因为我是一名化学家。如果它这么简单,那么指出正确的方向会很棒。
-
如果
chemicalElements[i].data();是一个字符串,那么您就不能将该字符串的内容用作变量的名称(您的示例中的chlorine不是字符串,而是对象的名称输入Algorithm<double>)。 -
@user616199:您正在寻找的方向是“声明变量”。说真的,任何编程教程都会涵盖这一点。
-
@KerrekSB,我知道你比我聪明得多。恭喜。我仔细阅读了我能拿到的每一本 C++ 书籍,但没有设法在这个特定问题上建立联系,这就是我在这里寻求建议的原因。我已阅读有关声明的内容。编码不是我工作的重点,为了取得任何进展,我有时需要帮助。如果你不想参与这个问题,我可以。
标签: c++ string class instantiation