首先virtual词典里解释为本质上存在但是没有表现形式,而C++中 注意 virtual 写在了共有继承前面,意思就是在继承时是真实存在但是不能被访问;换句话说,你在实例化对象MigrantWorker时需要实例化Farmar和Worker,而实例化这两个对象需要先实例化一个Person,那么传入值你选谁的?所以系统此时设置为禁止访问,在对象生成后你可以随便访问,因为你不可能通过两种方式同时访问一个对象内的成员。采用初始化列表的方式来赋值,Per实例化时是不能被访问的因此值传不进去,如果你Far和Wor的构造函数体内用 m_strColor=color是可以改的。因为执行有先后顺序,不冲突。
2015-08-29