c++ - c ++:使用std :: vector时,出现错误:分配抽象类类型的对象
问题描述
我看过其他类似的线程,这个问题在我使用的意义上是不同的std::vector
。我有以下代码在C++
.
#include<iostream>
#include<vector>
using namespace std;
class Vehicle {
public:
virtual void brake()=0;
};
class Car : public Vehicle {
public:
virtual void brake() override;
};
void Car::brake() {
cout<<"Brake applied"<<endl;
}
当我brake()
以这种方式调用它时:
int main() {
Car c;
c.brake(); // Brake applied
return 0;
}
但是,当我brake()
使用以下方式调用时,出现错误error: allocating an object of abstract class type 'Vehicle'
int main() {
vector<Vehicle> vehicleList;
vehicleList.push_back(c);
vehicleList.at(0).brake();
return 0;
}
对不出错有任何帮助吗?
解决方案
推荐阅读
- python - 在 python pandas 如何获取动态系列/列数据转换的值
- ajax - 使用 jquery/axios 获取 OAuth2 访问令牌
- ios - iOS - 如何使 UICollectionViewCell 根据其内容调整其高度?(包含一个 UITableView)
- c# - .NET 标准库能否以某种方式使用支持 .NET Framework 4.6.1 的 nuget 包
- google-apps-script - Google Apps 脚本从专用网络 (vpn) 获取数据
- database - Cosmos DB(共享 RU 或 Pr. Collection RU)的性能不一致问题
- javascript - 如何使用 exceljs 读取大型 csv 文件
- sugarcrm - 产品目录侧窗格在添加行项目时加载整个数据?
- typo3 - 将自己的 CSS 添加到 TYPO3 后端 [v9]
- java - 为什么我的“index.jsp”无法从控制器中识别我的变量,使用 java 和 Spring