我正在尝试使用链接的术语列表来实现多项式结构(链接列表是单独实现的)。
当我运行我的主程序时,我得到一个(线程1:EXC_BAD_ACCESS代码= 2)错误
我的coeff = x;
函数定义中的setCoeff
。
我试着注释掉那个特定的函数调用,但它给了我setX()和setY()函数的相同错误。
我想我的文件和功能设置正确,我无法弄清楚为什么它不让我使用这些功能。
请帮忙 !
按顺序,我包括:Polynomial.h,Polynomial.cpp和main.cpp。
#ifndef __Polynomial__Polynomial__
#define __Polynomial__Polynomial__
#include <stdio.h>
class Term {
private:
int coeff;
int deg_x;
int deg_y;
public:
Term();
int getCoeff();
int getX();
int getY();
void setX(int);
void setY(int);
void setCoeff(int);
};
#endif /* defined(__Polynomial__Polynomial__) */
___________________________
#include "Polynomial.h"
Term::Term() {
coeff = NULL;
deg_x = NULL;
deg_y = NULL;
}
int Term::getCoeff(){
return coeff;
}
int Term::getX() {
return deg_x;
}
int Term::getY() {
return deg_y;
}
void Term::setX(int x){
deg_x = x;
}
void Term::setY(int x){
deg_y = x;
}
void Term::setCoeff(int x){
coeff = x;
}
__________________________
#include <iostream>
#include <fstream>
#include "Polynomial.h"
int main() {
Term* t1;
t1->setCoeff(4);
t1->setX(3);
t1->setY(6);
}
答案 0 :(得分:0)
您永远不会创建对象。你有Term* t1
,它是一个未初始化的指向随机内存的指针,然后你尝试将它与t1->setCoeff(4)
一起使用,它试图使用一个从未创建过的对象。这肯定会出错。
这样做..
auto t1 = std::make_unique<Term>();
或者,如果您不需要它作为指针,您可以创建一个简单的堆栈变量并使用&#39;来访问它。&#39;像这样的运营商...
Term t1;
t1.setCoeff(4);
t1.setX(3);
t1.setY(6);