请问这样输入会报错吗?

M是基类N是派生类,然后在N类的定义里出现了:
private:
M mm;
mm.f();(这是M的函数)
请问这样是合法的吗?

不合法,函数的调用要写在函数里,不能直接放在private:下面。

class M
{
public:
void f() {}
};
class N : public M
{
private:
M mm;
void foo() { mm.f(); }
};
int main() { return 0; }