在基类中,我有一个函数GetDetections
,它接受一个字符串文件名,构造一个功能集,并将其工作延迟到一个纯虚拟函数GetDetections
。
在子类中,我实现了这个虚拟函数。
在main
中,我有一个子类的实例,并使用一个文件名调用GetDettions
。我以为这将调用基类的非虚拟函数,该函数接受字符串参数,但这并不能编译。错误是:
掠夺。cpp:在函数“int main()”中:
掠夺。cpp:33:48:错误:调用“SubClass::GetDetections(const char[13])”时没有匹配的函数
掠夺。cpp:33:48:注:候选人为:
prog.cpp:26: 9:注意:虚拟int子类::GetDettions(常量d::向量
这是代码。(另载于http://ideone.com/85Afyx)
#include <iostream>
#include <string>
#include <vector>
struct Feature {
float x;
float y;
float value;
};
class BaseClass {
public:
int GetDetections(const std::string& filename) const {
// Normally, I'd read in features from a file, but for this online
// example, I'll just construct an feature set manually.
std::vector<Feature> features;
return GetDetections(features);
};
// Pure virtual function.
virtual int GetDetections(const std::vector<Feature>& features) const = 0;
};
class SubClass : public BaseClass {
public:
// Giving the pure virtual function an implementation in this class.
int GetDetections(const std::vector<Feature>& features) const {
return 7;
}
};
int main() {
SubClass s;
std::cout << s.GetDetections("testfile.txt");
}
我尝试过:
GetDettions
为int GetDettions
,虚拟int GetDettions
。隐藏重载的虚拟函数。但是,您可以调用的BaseClasse
的GetDettions
与它的限定名称为
std::cout << s.BaseClass::GetDetections("testfile.txt");
使用基类中重载的GetDirections
函数隐藏派生类中的虚函数的实现。
试试这个:
using BaseClass::GetDetections;
int GetDetections(const std::vector<Feature>& features) const {
return 7;
}
子类
Second.CPP 我在表示错误:不允许类型名。那么这个错误的原因是什么呢?我想我还没有完全了解模板的整个机制--我对这个主题非常陌生。
启动错误 ApplicationContext.若要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2019-10-17 15:44:43.968错误10460--[main]O.S.Boot.SpringApplication:应用程序运行失败 我的pom.xml:
编写一个程序,定义一个类TestIsSubString和一个方法isSubString,该方法在另一个字符串中搜索特定的字符串;如果前者存在于后面的字符串中,则该方法必须返回true。例如:-isSubString(“cat”,“the cat in the hat.”)为true,但isSubString(“bat”,“the cat in the hat.”)为false。还要验证满足以下边界
这是一个问题:输入10个数字(来自user),然后从user输入另一个数字。如果该数字是这10个enterd数字中的一个,则打印yes,否则打印No。我不知道怎么解决这个。
这样,我有两个开发人员可以调用的公共类 classD仅对ClassA可见。所以我不能从ClassA调用classD(函数)。主要问题:如何实现?我只想打一个classA。classC正常。对于开发人员来说,classD和classB应该是不可见的。但仅对ClassA可见。有人能帮我吗?
我怎么能解决这个问题? 颤振并建立网络 具有良好零安全性的建筑物 目标dart2js失败:异常:警告:'dart2js'entrypoint脚本已弃用,请改用'dart compile js'。 /C:/用户/DELL/AppData/本地/发布/缓存/托管/pub.dartlang.org/flutter_screenutil-5.3.1/lib/screenutil_init.dart: 23