在s中的构造函数里,你只能调用f1和f2的构造函数,也就是说,你只能调用你的类的“直接基类”的构造函数,不能调用更上一层的构造函数。写成;class s:public f1,public f2{public:s(int a,int b,int c):f1(a,b),f2(a,c){}}如果要显式地引用f1中的数据成员a,就要加上作用域,如下:s(int a,int b,int c){f1::a=a;f2::a=a;b=b;c=c;}但是,看上去,派生类s对它的基类的几个成员都没有访问权限,因为无论是a还是b、c,都是私有的,所以上面的写法编译不过去,但是作用域规则是正确的,也是说,如果a、b、c的 |