尝试弄清楚如何将构造函数与继承的类一起使用。我知道这是非常错误的,我已经编写 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:“实体”:没有合适的默认构造函数可用,谢谢。
目前,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)
| 归档时间: |
|
| 查看次数: |
4026 次 |
| 最近记录: |