读书人

竟然无法访问基类的公共成员函数.该怎

发布时间: 2012-04-28 11:49:53 作者: rapoo

竟然无法访问基类的公共成员函数.
// cpp.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "stdio.h"
#include <iostream>
#include <fstream>

using namespace std;

class dad
{
public:
dad(int sex,int color)
{
this->sex=sex;
this->color=color;
cout<<"calldad.dad(int sex,int color)"<<endl;
}
dad()
{
this->sex=9;
this->color=9;
cout<<"call dad.dad()"<<endl;
}
public:
int getsex()
{
cout<<"calldad.getsex()"<<endl;
return sex;
}
int getcolor()
{
cout<<"calldad.getcolor()<<endl";
return color;
}
protected:
int sex;
int color;
};
class son:dad
{
private:
int age;
public:
son(int sex,int color,int age)
{
this->sex=sex;
this->color=color;
//dad(sex,color);
this->age=age;
cout<<"call son.son(int sex,int color,int age)"<<endl;
}
int getage()
{
cout<<"call son.getage()"<<endl;
return age;
}
int getsex()
{
cout<<"call son.getsex()"<<endl;
return this->sex;
}
};
void main()
{
dad d(1,2);
son s(3,4,5);
cout<<"d.sex:"<<d.getsex()<<endl;
cout<<"d.color:"<<d.getcolor()<<endl;
cout<<"s.sex:"<<s.getsex()<<endl;//在派生类son中实现
cout<<"s.color:"<<s.getcolor()<<endl;//在基类中实现,无法访问。cannot access public member declared in class 'dad'
cout<<"s.age:"<<s.getage()<<endl;
}

[解决办法]
class son:dad --> class son: public dad
[解决办法]

class son:dad
改为:class son:public dad

[解决办法]
class son:public dad
[解决办法]
class son:public dad//不写的话,默认是private

读书人网 >C++

热点推荐