菜鸟继承问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 00:06:53
#include <iostream.h>
class fl
{
public:
int a;
fl(int b)
{
a=b;
}
};

class zl:public fl
{
public:
void f()
{
cout<<a<<endl;
cout<<"hello"<<endl;
}
};

void main()
{
int a;
cout<<"input"<<endl;
cin>>a;
fl lx(a);
zl zlx();
cout<<lx.a<<endl;
zlx.f();
}
错误:
C:\Documents and Settings\Administrator\继承.cpp(30) : error C2228: left of '.f' must have class/struct/union type
那里错??
顺便问下
基类能不能访问派生类里的成员?

你zl的函数没有定义构造函数啊,这是问题1,问题2是,一个参数都没有的对象的建立要写成zl zlx;不能加(),zl zlx();这个是返回zl类型的函数了.问题3,在基类里,不能访问派生类里的成员的.以下是把你的代码处理了一下,你可以做个参考.
#include <iostream.h>
class fl
{
public:
int a;
fl(int b)
{
a=b;
}
};

class zl:public fl
{
public:
zl():fl(0){};//此行是我加的。
void f()
{
cout<<a<<endl;
cout<<"hello"<<endl;
}
};
void main()
{
int a;
cout<<"input"<<endl;
cin>>a;
fl lx(a);
zl zlx; //这行的括号去掉了
cout<<lx.a<<endl;
zlx.f();
}

class zl:public fl
class zl::public fl