单项选择题

有如下程序:
#include <iostream>
using namespace std;
class Base

private:
void funl() const cout<<"fun1";
protected:
void fun2() const cout<<"fun2";
public:
void fun3() const cout<<"fun3";
;
class Derived: protected Base

public:
void fun4() const cout<<"fun4";
;
int main()

Derived obj;
obj.fun1(); //①
obj.fun2(); //②
obj.fun3(); //③
obj.fun4(); //④
return 0;

其中有语法错误的语句是( )。

A.①②③④
B.①②③
C.②③④
D.①④