有关继承和函数覆盖的问题。
public ActionResult handleForm(string employeeNames)
{
return View();
}
所以在我的程序中它是// base.h
class Base {
protected:
void a();
public:
void b();
}
// base.cc
void Base::a() {
// Empty.
return;
}
void Base::b() {
this->a();
}
// derived.h
class Derived : public Base {
protected:
void a();
}
// derived.cc
void Derived::a() {std::cout << "OK" << std::endl;}
,但Derived* p = new Derived()
不打印p->b()
?对不起新手问题。
答案 0 :(得分:2)
您必须声明一个函数virtual
才能使继承有效。
// base.h
class Base {
protected:
void a();
public:
virtual void b();
}
答案 1 :(得分:1)
您需要在基类声明中标记var content = (provider as IUnvalidatedProvider).GetValue(key, false);
b()
:
virtual
并注意类声明末尾的分号:这在C ++中是必需的。请注意,您不需要在派生类中编写class Base {
protected:
void a();
public:
virtual void b();
};
,尽管有些人采用这种风格。
(与Java不同,多态性在C ++中不是自动的)。