我想知道使用非虚拟派生什么时,由编译器产生的: template< unsigned int D >
class Point
{
int[D];
// No virtual function
// ...
};
class Point2 : public Point<2> {};
class Point3 : public Point<3> {};
这里
我有一个看起来像这样一个层次结构: class Base
{
public:
void Execute();
virtual void DoSomething() = 0;
private:
virtual void exec_();
};
class Derived : public Base
{
public:
//DoSomething
据我所知,非虚方法是静态绑定,这就意味着,就我所知,它在编译时本身已知哪个方法会被调用在哪个对象上。该决定基于对象类型的静态。令我困惑的是接口(而不是类)和静态绑定。 考虑以下代码, public interface IA
{
void f();
}
public class A : IA
{
public void f() { Console.WriteLine("A