C***y 发帖数: 2546 | 1 有没有办法强制基类中定义的pure virtual function在所有的继承类中实现
For example:
class A
{
public:
virtual void func() = 0;
};
class B: public A
{
public:
void func() { std::cout<<"In B"<
};
class C: public B
{
public:
void func() { std::cout<<"In C"<
};
class C中也必须实现 func,否则报错 |
y*******g 发帖数: 6599 | 2 没办法,,因为B已经实现了。 C is a B, 所以没法用A来控制C,这是oo的基本原则
要么用C直接继承A |
C***y 发帖数: 2546 | 3 Thanks!
需要在所有的继承类中加个function,因为继承类很多,所以想让编译器来帮助检查一
下是否有遗漏,看来只能手工检查了
【在 y*******g 的大作中提到】 : 没办法,,因为B已经实现了。 C is a B, 所以没法用A来控制C,这是oo的基本原则 : 要么用C直接继承A
|
b*****c 发帖数: 1103 | 4 你将public继承变成protected,
这样C的instance 只能访问C自己的func |
y*******g 发帖数: 6599 | 5 public 改成 protected对设计的变化太大了吧
而且为什么改了就可以?
【在 b*****c 的大作中提到】 : 你将public继承变成protected, : 这样C的instance 只能访问C自己的func
|
a********m 发帖数: 15480 | 6 是说弄成private吧。
【在 y*******g 的大作中提到】 : public 改成 protected对设计的变化太大了吧 : 而且为什么改了就可以?
|
C***y 发帖数: 2546 | 7 有没有办法强制基类中定义的pure virtual function在所有的继承类中实现
For example:
class A
{
public:
virtual void func() = 0;
};
class B: public A
{
public:
void func() { std::cout<<"In B"<
};
class C: public B
{
public:
void func() { std::cout<<"In C"<
};
class C中也必须实现 func,否则报错 |
y*******g 发帖数: 6599 | 8 没办法,,因为B已经实现了。 C is a B, 所以没法用A来控制C,这是oo的基本原则
要么用C直接继承A |
C***y 发帖数: 2546 | 9 Thanks!
需要在所有的继承类中加个function,因为继承类很多,所以想让编译器来帮助检查一
下是否有遗漏,看来只能手工检查了
【在 y*******g 的大作中提到】 : 没办法,,因为B已经实现了。 C is a B, 所以没法用A来控制C,这是oo的基本原则 : 要么用C直接继承A
|
b*****c 发帖数: 1103 | 10 你将public继承变成protected,
这样C的instance 只能访问C自己的func |
|
|
y*******g 发帖数: 6599 | 11 public 改成 protected对设计的变化太大了吧
而且为什么改了就可以?
【在 b*****c 的大作中提到】 : 你将public继承变成protected, : 这样C的instance 只能访问C自己的func
|
a********m 发帖数: 15480 | 12 是说弄成private吧。
【在 y*******g 的大作中提到】 : public 改成 protected对设计的变化太大了吧 : 而且为什么改了就可以?
|
r****t 发帖数: 10904 | |
d********t 发帖数: 9628 | 14 哦,很奇怪啊?
【在 C***y 的大作中提到】 : 有没有办法强制基类中定义的pure virtual function在所有的继承类中实现 : For example: : class A : { : public: : virtual void func() = 0; : }; : class B: public A : { : public:
|
l*****a 发帖数: 14598 | 15 你这是什么编译器?
我用Visual studio试了一下,没问题啊
而且C inherited from B and B already implement func()
no problem at all ah
【在 C***y 的大作中提到】 : 有没有办法强制基类中定义的pure virtual function在所有的继承类中实现 : For example: : class A : { : public: : virtual void func() = 0; : }; : class B: public A : { : public:
|
d********t 发帖数: 9628 | 16 我也是这么想的。
【在 l*****a 的大作中提到】 : 你这是什么编译器? : 我用Visual studio试了一下,没问题啊 : 而且C inherited from B and B already implement func() : no problem at all ah
|
r****t 发帖数: 10904 | 17 his desire, def of "no problem" == compile time error.
your def of "no problem" == compile success.
【在 l*****a 的大作中提到】 : 你这是什么编译器? : 我用Visual studio试了一下,没问题啊 : 而且C inherited from B and B already implement func() : no problem at all ah
|