Question
Consider this program: #include Sequence.h // class template from problem 1 class Coord { public: Coord(int rr, int cc) : m_row(rr), m_col(cc) {} Coord() :
Consider this program:
#include "Sequence.h" // class template from problem 1 class Coord { public: Coord(int rr, int cc) : m_row(rr), m_col(cc) {} Coord() : m_row(0), m_col(0) {} double r() const { return m_row; } double c() const { return m_col; } private: double m_row; double m_col; }; int main() { Sequence si; si.insert(50); // OK Sequence sc; sc.insert(0, Coord(50,20)); // OK sc.insert(Coord(40,10)); // error! }
Explain in a sentence or two why the call to the one-argument form of Sequence::insert causes at least one compilation error. (Notice that the call to the one-argument form of Sequence::insert is fine, as is the call to the two-argument form of Sequence::insert.) Don't just transcribe a compiler error message; your answer must indicate you understand the ultimate root cause of the problem and why that is connected to the call to Sequence::insert.
int insert(int pos, const ItemType& value) { if (pos < 0 || pos > m_size) return -1;
Node* p = nodeAtPos(pos); insertBefore(p, value);
return pos; };
int insert(const ItemType& value) { // Find the Node before which to insert Node* p; int pos; for (p = m_head->m_next, pos = 0; p != m_head && value > p->m_value; p = p->m_next, pos++) ;
// Insert the value there insertBefore(p, value); return pos; };
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started