gpt4 book ai didi

c++ - vector的使用+继承

转载 作者:太空宇宙 更新时间:2023-11-04 13:49:44 24 4
gpt4 key购买 nike

我想做的是向我的 obiektGeometryczny vector 添加一个对象,该对象可以是 Manipulator 或 kwadrat 类型。我希望“przeszkoda”成为 Manipulator 或 kwadrat(波兰方 block )类型的障碍。我试过使用:

obiektGeometryczny.push_back(new Manipulator());

但它返回:

src/scena.cpp:71:36: error: expected type-specifier before ‘*’ token
obiektGeometryczny.push_back(new *Manipulator);

代码如下:

场景.hh

#ifndef SCENA_HH
#define SCENA_HH
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <unistd.h>
#include <vector>
#include "manipulator.hh"
#include "kwadrat.hh"
#include "przeszkoda.h"


class scena{
vector<przeszkoda*> obiektGeometryczny;
public:
scena(int argc, char *argv[]);
};
#endif

przeszkoda.hh

#ifndef PRZESZKODA_HH
#define PRZESZKODA_HH

class przeszkoda{
virtual void czyPrzeciecie() {;};
};
#endif

操纵器.hh

#ifndef MANIPULATOR_HH
#define MANIPULATOR_HH
#include "przeszkoda.hh"

class Manipulator : public przeszkoda
{
void czyPrzeciecie();
};
#endif

kwadrat.hh

#ifndef KWADRAT_HH
#define KWADRAT_HH
#include "przeszkoda.hh"

class kwadrat : public przeszkoda
{
void czyPrzeciecie();
};
#endif

最佳答案

这不是最小的例子 - 还有更多的东西你没有给我们看。您发布的代码没问题 - 尝试简化您的案例,因为这样的事情可以正常工作:

#include <vector>
using namespace std;

class A {
int x;
};

int main(void) {
vector<A*> v;
v.push_back(new A());
return 0;
}

关于c++ - vector的使用+继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23961995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com