пытается понять, как использовать конструкторы с унаследованным классом. Я знаю, что это очень неправильно, я пишу на C ++ около трех дней, но в любом случае вот мой код:
clientData.h, два класса, ClientData расширяет сущность:
#pragma once
class Entity
{
public:
int x, y, width, height, leftX, rightX, topY, bottomY;
Entity(int x, int y, int width, int height);
~Entity();
};
class ClientData : public Entity
{
public:
ClientData();
~ClientData();
};
и clientData.cpp, который содержит функции:
#include <iostream>
#include "clientData.h"
using namespace std;
Entity::Entity(int x, int y, int width, int height)
{
this->x = x;
this->y = y;
this->width = width;
this->height = height;
this->leftX = x - (width/2);
this->rightX = x + (width/2);
this->topY = y - (height/2);
this->bottomY = y + (height/2);
}
Entity::~Entity()
{
cout << "Destructing.\n";
}
ClientData::ClientData()
{
cout << "Client constructed.";
}
ClientData::~ClientData()
{
cout << "Destructing.\n";
}
и, наконец, я создаю новую ClientData с:
ClientData * Data = new ClientData(32,32,32,16);
Теперь я не удивлен, что мой компилятор выдает мне ошибки, так как мне передать аргументы нужным классам?
Первая ошибка (из MVC2008)
ошибка C2661: «ClientData :: ClientData»: ни одна из перегруженных функций не принимает 4 аргумента
и второе, которое всплывает, какие бы изменения я ни делал,
ошибка C2512: «Entity»: нет подходящего конструктора по умолчанию
Спасибо.