Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

NEED HELP IMPLEMENTING THE REST // Few comments describing the class Points2 #ifndef CSCI335_HOMEWORK1_POINTS2_H_ #define CSCI335_HOMEWORK1_POINTS2_H_ #include #include #include #include #include namespace teaching_project { //

NEED HELP IMPLEMENTING THE REST // Few comments describing the class Points2

#ifndef CSCI335_HOMEWORK1_POINTS2_H_ #define CSCI335_HOMEWORK1_POINTS2_H_

#include #include #include #include #include

namespace teaching_project { // Place comments that provide a brief explanation of the class, // and its sample usage. template class Points2 { public: // Default "big five" -- you have to alter them for your assignment. // That means that you will remove the "= default" statement. // and you will provide an implementation.

// Zero-parameter constructor. // Set size to 0. Points2() { size_ = 0; }

// Copy-constructor. Points2(const Points2 &rhs) {sequence_ = new std::array;{ *rhs.sequence_;};}

// Copy-assignment. If you have already written // the copy-constructor and the move-constructor // you can just use: // { // Points2 copy = rhs; // std::swap(*this, copy); // return *this; // } Points2& operator=(const Points2 &rhs) { Points2 copy = rhs; std::swap(*this, copy); return *this; }

// Move-constructor. Points2(Points2 &&rhs){ *this = std::move(rhs);

}

// Move-assignment. // Just use std::swap() for all variables. Points2& operator=(Points2 &&rhs) { *this = std::move(rhs); return *this; }

~Points2() { delete[] sequence_; }

// End of big-five.

// One parameter constructor. Points2(const std::array& item) { // Provide code. }

// Read a chain from standard input. void ReadPoints2() { // Part of code included (without error checking). std::string input_line; std::getline(std::cin, input_line); std::stringstream input_stream(input_line); if (input_line.empty()) return; // Read size of sequence (an integer). int size_of_sequence; input_stream >> size_of_sequence; // Allocate space for sequence. // Add code here. Object token; for (int i = 0 ;input_stream >> token; ++i) { int x, y; std::cin >> x >> y; sequence_[i].fill(x); sequence_[i].fill(y); // Read coordinates. // Fill sequence_ here. } }

size_t size() const { return size_; }

// @location: an index to a location in the sequence. // @returns the point at @location. // const version. // abort() if out-of-range. const std::array& operator[](size_t location) const { // Code missing. }

// @c1: A sequence. // @c2: A second sequence. // @return their sum. If the sequences are not of the same size, append the // result with the remaining part of the larger sequence. friend Points2 operator+(const Points2 &c1, const Points2 &c2) { }

// Overloading the << operator. friend std::ostream &operator<<(std::ostream &out, const Points2 &some_points2) { } private: // Sequence of points. std::array *sequence_; // Size of sequence. size_t size_;

};

} // namespace teaching_project #endif // CSCI_335_HOMEWORK1_POINTS2_H_

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions