Программы на C++. Форум разработчиков
Anonymous
Использование шаблонов классов и функций базового класса с пользовательскими классами
Сообщение
Anonymous » 23 фев 2026, 07:52
Добрый день. В одном из моих курсов мне было поручено использовать шаблоны классов в классе Rectangle, а затем использовать массив указателей, перебирая три объекта Rectangle, которые будут показывать размеры, площадь и периметр объекта.
Код: Выделить всё
#include
#include
#include
using namespace std;
class Base {
public:
virtual ~Base () {}
virtual double get() const = 0;
virtual void set() const = 0;
virtual void area() const = 0;
virtual void perimeter() const = 0;
virtual void PrintRectangleDimensions() const = 0;
};
template class Rectangle : public Base {
private:
T length, width;
public:
Rectangle(T val1, T val2) : length(val1), width(val2) {
this -> length = length;
this -> width = width;
}
double get(string dimension) {
if (dimension == "length") {
return length;
}
if (dimension == "width") {
return width;
}
};
void set(double value1 = 0, double value2 = 0) {
if (value1 != 0) {
length = value1;
}
if (value2 != 0) {
width = value2;
}
};
void area() {
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79894328/using-class-templates-and-base-class-functions-with-custom-classes[/url]
1771822355
Anonymous
Добрый день. В одном из моих курсов мне было поручено использовать шаблоны классов в классе Rectangle, а затем использовать массив указателей, перебирая три объекта Rectangle, которые будут показывать размеры, площадь и периметр объекта. [code]#include #include #include using namespace std; class Base { public: virtual ~Base () {} virtual double get() const = 0; virtual void set() const = 0; virtual void area() const = 0; virtual void perimeter() const = 0; virtual void PrintRectangleDimensions() const = 0; }; template class Rectangle : public Base { private: T length, width; public: Rectangle(T val1, T val2) : length(val1), width(val2) { this -> length = length; this -> width = width; } double get(string dimension) { if (dimension == "length") { return length; } if (dimension == "width") { return width; } }; void set(double value1 = 0, double value2 = 0) { if (value1 != 0) { length = value1; } if (value2 != 0) { width = value2; } }; void area() { cout Подробнее здесь: [url]https://stackoverflow.com/questions/79894328/using-class-templates-and-base-class-functions-with-custom-classes[/url]