日期:2014-05-17  浏览次数:20692 次

继承的问题——构造函数
namespace ConsoleApplication15
{
    class Program
    {
        static void Main(string[] args)
        {
            Derived q = new Derived('M');
            q.print();
        }
    }
    class BaseClass
    {
        protected char s;
        public BaseClass(char c)
        {
            s = c;
        }
    }
    class Derived : BaseClass
    {
        public Derived(char q)
        { s = ++q; }
        public void print()
        {

            Console.WriteLine(s);

        }
    }
}

最后结果要求是N,报错说:错误 1 “ConsoleApplication15.BaseClass”不包含采用“0”个参数的构造函数

------解决方案--------------------
class BaseClass     {         protected char s;         public BaseClass(char c)         {             s = c;         }     } 
将这个修改为
class BaseClass     {        
 protected char s; 
public BaseClass()         
{                
}       
public BaseClass(char c)         
{           
  s = c;         
}     


这样就没有问题了。
------解决方案--------------------
public Derived(char q) : base(++q){}
------解决方案--------------------
继承你就要把上面的构造函数也继承下来,就是在你继承的函数里面也写一个构造函数,把上面函数的参数也继承下来就行了!