我最近开始使用 C++,但我并不完全确定我掌握了指针的概念以及它们与数组的连接。我有两个类,术语和多项式。我有一个主循环,允许用户输入 2 个数字。然后将这些数字添加到“Term”对象中,然后将该对象添加到“Polynom”对象中。每次执行循环时,都会创建一个新的“Term”对象。
//These lines are executed until the user is done entering numbers
potens = new Term;
potens->sattPotens(kinput, ninput);//Add values to "Term object"
poly.addTerm(potens);//Add "Term" object to "Polynom" object
“多项式”对象仅在程序中创建一次。在“Polynom”类中,我使用“Term”指针来存储添加到“Polynom”对象的所有“Term”对象。“Polynom”类中的“Term”指针在“Polynom”构造函数中初始化一次。
void Polynom::addTerm(Term *t){
*(term+antal_termer) = *t;//This is were the program crashes
antal_termer++;
}
我知道我可以使用向量而不是指针来存储“术语”对象,但我正在尝试了解指针的工作原理。我也不确定何时应该删除在主循环中创建的对象。因为每次执行循环时,我都会创建一个新的“Term”对象,但我从不删除它们。
编辑:我曾经以这种方式在“Polynom”类中分配“Term”对象:term = new Term[]; 然后我将其更改为 term = new Term[10]; 但是当我执行 term[antal_termer] = *t; 时我仍然崩溃