【发布时间】:2017-10-14 09:15:52
【问题描述】:
我想知道为什么我的变量是指针类型的指针(**) 而不仅仅是 1 个指针。
错误是:
无法将“Monomial**”转换为“Monomial* const”作为回报
为什么会这样?
我的头文件:
class Polynomial
{
private:
Monomial * poly_array [];
int poly_counter;
public:
Polynomial();
~Polynomial();
Monomial * const getPoly_array();
}
我的多项式文件的 cpp 如下所示:
Monomial * const Polynomial::getPoly_array() {
return poly_array;
}
我还有一个 Monomial Object 的头文件和 cpp 文件。
class Monomial
{
private:
int coeff;
int exp;
public:
Monomial(int coeff, int exp = 0);
Monomial();
int GetCoeff();
int GetExp();
//Operator Overloading
void operator += (const Monomial& monomial);
Monomial operator *(const Monomial& monomial1);
void operator *=(const Monomial& monomial);
bool operator ==(const Monomial& monomial);
//Neagative the monomial
void negate();
friend std::ostream& operator << (std::ostream& out, const Monomial& m);
char* stringRepresentation() const;
};
std::ostream& operator << (std::ostream& out, const Monomial& m);
【问题讨论】:
-
您根本不应该在这里使用指针。只需将单项式存储在
std::vector<Monomial> -
你认为
Monomial * poly_array [];是做什么的?如果sizeof(Polynomial)只包含这个,你觉得会是什么?
标签: c++ arrays c++11 pointers type-conversion