这个C++问题怎么回事?

来源:百度知道 编辑:UC知道 时间:2024/09/23 20:45:15
#include <iostream>
using namespace std;
class cbase
{
public:
virtual void func1(){cout<<"调用函数cbase::func1()!"<<endl;
virtual void func2(){cout<<"调用函数cbase::func2()!"<<endl;
void func3(){cout<<"调用函数cbase::func3()!"<<endl;
};
class cderived:public cbase
{
public:
void func1(){cout<<"调用函数cderived::func1()!"<<endl;}
void func3(){cout<<"调用函数cderived::func3()!"<<endl;}
};
int main()
{
cbase obj1;
cbase *p;
cderived obj2;
p=&obj1;
p->func1();
p->func2();
p->func3();
p=&obj2;
p->func1();
p->func2();
p->func3();
return 0;
}

错误提示:G:\2\t2.cpp(35) : fatal error C1075: end of file found before the left brace '{' at 'G:\2\t2.cpp(10)' was matched
Error execu

你忘记加'}'了,

正确的代码如下:
#include<iostream>
using namespace std;
class cbase
{
public:
virtual void func1(){cout<<"调用函数cbase::func1()!"<<endl;}
virtual void func2(){cout<<"调用函数cbase::func2()!"<<endl;}
void func3()
{cout<<"调用函数cbase::func3()!"<<endl;}
};
class cderived:public cbase
{
public:
void func1(){cout<<"调用函数cderived::func1()!"<<endl;}
void func3(){cout<<"调用函数cderived::func3()!"<<endl;}
};
int main()
{
cbase obj1;
cbase *p;
cderived obj2;
p=&obj1;
p->func1();
p->func2();
p->func3();
p=&obj2;
p->func1();
p->func2();
p->func3();
return 0;
}

程序第6,7,8行末尾都缺少了 ‘ } ’

还有啊,不建议你把花括号和函数体写在同一行
最好分开写
否则就容易出现这种括号不匹配的错误