C++ 继承和构造函数

Diz*_*Doo 2 c++ inheritance

尝试弄清楚如何将构造函数与继承的类一起使用。我知道这是非常错误的,我已经编写 C++ 大约三天了,但无论如何这是我的代码:

clientData.h,两个类,ClientData扩展Entity:

#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();
};
Run Code Online (Sandbox Code Playgroud)

和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";
}
Run Code Online (Sandbox Code Playgroud)

最后,我创建一个新的 ClientData:

ClientData * Data = new ClientData(32,32,32,16);
Run Code Online (Sandbox Code Playgroud)

现在,我对编译器向我喊出错误并不感到惊讶,那么如何将参数传递给正确的类呢?

第一个错误(来自 MVC2008)是错误 C2661:'ClientData::ClientData':没有重载函数需要 4 个参数

第二个,无论我似乎做了什么更改,都会弹出错误 C2512:“实体”:没有合适的默认构造函数可用,谢谢。

shu*_*e87 5

目前,Client 数据类的构造函数无法工作。您需要为客户端数据创建一个构造函数,例如:

ClientData(int x, int y, int width, int height): Entity(x, y, width, height)
Run Code Online (Sandbox Code Playgroud)

如果你想打电话

new ClientData(32,32,32,16);
Run Code Online (Sandbox Code Playgroud)