, так что .. я изо всех сил пытался освободить массив.
У меня нет ни малейшего понятия о том, почему есть память, но почему-то есть одна.
Я не выделял никакой памяти нигде кроме основной функции.Освободить массив указателей - C++
#include <iostream>
#include "Motorboat.h"
#include "Sailboat.h"
using namespace std;
void printSailBoats(Boat* arr[], int nrOfElements);
int main() {
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); // used to check for memoryleaks in debug mode
Boat* test[4];
int nrOfElements = 4;
test[0] = new Motorboat("heeelllooo",15000,"v100");
test[1] = new Sailboat("saaailboat",1004,43.5);
test[2] = new Motorboat("ASDK",4932,"Blabla");
test[3] = new Sailboat("DKEOK",4992,103.4);
printSailBoats(test,nrOfElements);
for(int i=0; i<4; i++) {
delete test[i];
}
return 0;
}
void printSailBoats(Boat* arr[], int nrOfElements) {
// prints all sailboats
}
EDIT: добавлены классы. Boat.h:
#ifndef BOAT_H
#define BOAT_H
#include <string>
using namespace std;
class Boat {
public:
virtual void setModel(string newModel) = 0;
virtual void setPrice(int newPrice) = 0;
virtual string getModel() const = 0;
virtual int getPrice() const = 0;
virtual string getType() const = 0;
virtual string toString() const = 0;
};
#endif
Sailboat.h:
#ifndef SAILBOAT_H
#define SAILBOAT_H
#include "Boat.h"
class Sailboat: public Boat {
private:
double sailArea;
string model;
int price;
public:
Sailboat(string model, int price, double sailArea);
void setSailArea(double newSailArea);
double getSailArea() const;
string toString() const;
void setModel(string newModel);
void setPrice(int newPrice);
string getModel() const;
int getPrice() const;
string getType() const;
};
#endif
Sailboat.cpp:
#include "Sailboat.h"
Sailboat::Sailboat(string model, int price, double sailArea) {
this->model = model;
this->price = price;
this->sailArea = sailArea;
}
// Setters, getters and toString...
Это в значительной степени то же самое для класса моторной лодки, за исключением, что есть string, чтобы сохранить имя движка вместо sailarea.
Что такое определение '' классов Boat' и Motorboat'? – Inspired
Действительно ли ваш драбтер шлюпки виртуальный? –
Есть ли распределения внутри моторной лодки() Парусник() и Лодка()? – Yamodax