gpt4 book ai didi

c++ - 访问冲突。 C++ 多态性

转载 作者:行者123 更新时间:2023-11-30 01:19:27 28 4
gpt4 key购买 nike

我有点开始学习 C++ 中的多态性了。这段代码给我“访问冲突读取位置 0xFDFDFD00”。 Visual Studio 2012 专业版。调试器说,“i”的“__vfptr”是“0xfdfdfd00 {???}”。

#include <iostream>
#include <vector>

using namespace std;

class Enemy {
public:
virtual void loop() = 0;
};

class EnemyA{
public:
void loop() {
cout << "Pew-pew\n";
}
};
class EnemyB {
public:
void loop() {
cout << "Pow-pow\n";
}
};
class EnemyC {
public:
void loop() {
cout << "KABOOM\n";
}
};

vector <Enemy*> enemies;

int main() {
enemies.push_back((Enemy*) new EnemyA());
enemies.push_back((Enemy*) new EnemyB());
enemies.push_back((Enemy*) new EnemyC());

for (Enemy* i : enemies) {
i->loop();
}
}

最佳答案

你忘了实际继承自 Enemy 类:

class Derivet : public Base {};

关于c++ - 访问冲突。 C++ 多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20867764/

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