- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 C++。Vehicle
是一个类,Car
、Truck
、Ship
是它的子类。
假设我有一个文件 file.vechicle
包含关于 Vehicle
对象的信息,这个文件的第一个信息是车辆是否是 汽车
、卡车
或轮船
。
文件的格式根据文件所描述的车辆而变化。
我在 Vehicle
中定义了一个静态方法,它将一个 .vehicle
文件作为输入,然后它确定该文件是否描述了一个 Car
、Truck
或 Ship
等它调用相应类中的私有(private)方法以从文件构建对象。最后,静态方法返回正确的对象,如果文件描述的是汽车,则返回 Car
,依此类推。
是否可以在不引入静态方法的情况下实现同样的事情,因此只需调用 Vehicle
的构造函数并让 Vehicle
根据文件?
最佳答案
不,C++ 对象不会改变它们最派生的类型(这种行为或多或少可以很容易地模拟,像往常一样,以一些性能成本和遵循约定的代价)。您正在使用某种工厂模式,在 C++(和许多其他语言)中,它的典型实现是通过返回装箱多态类型的静态方法完成的。
一个典型的解决方案是Vehicle
类型在内部封装具体实现。这甚至允许构建它:
class Carrier {
public:
virtual void go() = 0;
virtual ~Carrier() {}
};
class Car: public Carrier;
class Ship: public Carrier;
struct Vehicle /* you can even add ': Carrier' here, just don't make Vehicle run on itself */
{
Vehicle(std::string const &spec): impl(spec == "car"? new Car : new Ship) {}
void go() { return impl->go(); }
private:
std::unique_ptr<Carrier> impl;
};
关于c++ - 在 C++ 中先验未知子类类型的模型类/子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49877940/
我想创建一组参数用于 R 中的 brms 模型: library(brms) tmp <- prior(normal(10,2), nlpar = "x") 理想情况下,我想从导入的矩阵中提取每个先验
我想在 PyMC3 中指定大型多元正态分布作为先验。该分布的精度矩阵的行列式在数值上等于零。看来这是 PyMC3 的问题。有什么建议么?我只需要最大化后验,无论行列式的值如何,都可以这样做。 最佳答案
(未在 Activator 文档中找到) 通过在文件 build.sbt 中添加以下条目(粗体),似乎可以让 Activator 也使用现有的本地 Maven 存储库: 解析器 += Seq( 位于“
我之前实现了原始的 Bayesian Probabilistic Matrix Factorization (BPMF) pymc3 中的模型。 See my previous question供引用
我是一名优秀的程序员,十分优秀!