#include<iostream>
using std::cout;
using std::endl;
class MathOps {
public:
virtual int add(int x) = 0;
virtual int subtr(int x) = 0;
};
class MathOps_Impl : public virtual MathOps {
private:
int m_y;
public:
MathOps_Impl(int y) : m_y(y) {
cout << "MathOps_Impl initialized with value: " << m_y << endl;
}
virtual int add(int x) { return x + m_y;}
virtual int subtr (int x) { return m_y - x;}
};
class MathOps_Extn : public virtual MathOps {
// Extends MathOps by adding mult() and div()
public:
virtual int mult(int x) = 0;
virtual int div(int x) = 0;
};
class MathOps_Extn_Impl : public virtual MathOps_Extn, private MathOps_Impl {
private:
int m_y; // Have to replicate member data m_y here.
public:
MathOps_Extn_Impl(int y) : MathOps_Impl(y), m_y(y) {
cout << "MathOps_Extn_Impl initialized with value: " << m_y << endl;
}
virtual int mult(int x) {
return x * m_y;
}
virtual int div(int x) {
int quotient = x == 0? 0 : m_y/x;
return quotient;
}
};
int main() {
MathOps_Extn* B = new MathOps_Extn_Impl(10);
cout << "add 20: " << B->add(20) << endl;
cout << "subtr 20: " << B->subtr(20) << endl;
cout << "mult 2: " << B->mult(2) << endl;
cout << "div 5: " << B->div(5) << endl;
注意Mathops_extn_impl
中的M_Y
复制。有没有办法避免这种复制?
注意mathops_extn_impl中m_y的复制。有没有办法避免这种复制?
是的。授予Mathops_impl::m_y
protected
访问权限,而不是private
。
您明确地询问为什么派生类不能访问私有数据。那是故意的。
我们正在进行一场关于如何设计RESTendpoint的辩论。基本上可以归结为这个做作的例子。 假设我们有: 其中演员A是同一个演员。 这种分歧最终源于使用ember.js,它期望有一个特定的层次结构--不希望有多种方式来访问相同的数据(最终,这将真正导致少量的代码重复)。可以将ember.js映射为使用/actors/a,因此没有严格的技术限制,这实际上更多地是一个哲学问题。 我环顾四周,找不到任
问题内容: 有人可以给我一个SQL查询来帮助我清理此表吗?在清除locid(索引)后,应该重新设置,这是使用此查询的县城 。当我通过phpmyadmin的导入多次导入sql文本时,就会出现这种冗余数据,这就是结果, 问题答案: 在表位置添加唯一索引,这样就不会插入重复的记录 这将自动从表中删除重复的记录,对于以后的插入查询,您需要使用子句来避免出现重复的错误。 但正如注释中所建议的那样,它可能不适
问题内容: 我有一个包含分层数据的表。 列“ ParentId”保存其父级的ID(“ ID”-关键列)。 删除一行时,我要删除所有子级(所有级别的嵌套)。 怎么做? 谢谢 问题答案: 当行数不太大时,erikkallen的递归方法起作用。 这是使用临时表收集所有子项的替代方法: 它从带有@delete_id的行开始,然后从那里开始。where语句用于防止递归;如果您确定没有任何内容,则可以将其忽略
问题内容: Hibernate会生成包含所有列的语句,无论我是否更改了这些列中的值,例如: 发表以下声明: 因此B,C,D列已更新,而我没有更改它们。 说,项目会经常更新,并且所有列都已建立索引。 问题是:将Hibernate部分优化为如下所示是否有意义: 最让我困惑的是,“未优化”和“优化”查询版本的计划是相同的! 问题答案: 由于PostgreSQL MVCC,an 实际上更像是plus 。除
Singleton设计模式说我们应该在“single instance”类中定义一个私有静态属性。但是,没有适当的解释为什么数据成员必须是私有静态的。如果数据成员只是私有的,会有什么不同吗? 在以下代码中: 如果数据成员不是静态的,会有什么不同吗? 编辑:通过公开析构函数,它会改变单例设计的属性吗?
我想枢轴的数据帧像: 进入具有如下分层列的数据帧: 我尝试了,但它只会给我一个这样的框架: 如何更改列的层次结构?