| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1086 人关注过本帖
标题:[求助]c++基础问题
只看楼主 加入收藏
cl_zdl
Rank: 1
等 级:新手上路
威 望:1
帖 子:71
专家分:0
注 册:2006-10-11
收藏
 问题点数:0 回复次数:11 
[求助]c++基础问题

为什么他说我不能访问基类中的函数呢?
#include <iostream>
using namespace std;
class Base{
public:Base (){cout<<"Base被构造"<<endl;}
~Base (){cout <<"Base 被析构"<<endl;}
void fn1(char *c);
void fn2(int *b);
};

void Base::fn1(char *c)
{cout<<"你输入的字符是:"<<endl;}

void Base::fn2(int *b)
{cout <<"你输入数字是:"<<endl;}

class Drived:private Base
{public :Drived(){cout<<"Drived 被构造:"<<endl;}
~Drived(){cout<<"Drived被析构:"<<endl;}
};

void main()
{char c[10];
int b[10];
cout<<"enter charcter you want to input:"<<endl;
cin>>c;

cout <<"enter the number you want to input:"<<endl;
for(int i=0;i<=9;i++)
cin>>b[i];

Drived drived;
drived.fn1(c);
drived.fn2(b);
}
错误调试:
--------------------Configuration: 11 - Win32 Debug--------------------
Compiling...
11.cpp
D:\学习文件\CL\7-9\11\11.cpp(32) : error C2248: 'fn1' : cannot access public member declared in class 'Base'
D:\学习文件\CL\7-9\11\11.cpp(6) : see declaration of 'fn1'
D:\学习文件\CL\7-9\11\11.cpp(33) : error C2248: 'fn2' : cannot access public member declared in class 'Base'
D:\学习文件\CL\7-9\11\11.cpp(7) : see declaration of 'fn2'
执行 cl.exe 时出错.

11.obj - 1 error(s), 0 warning(s)

搜索更多相关主题的帖子: 基础 
2006-10-15 19:09
liyanguestc
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-5-15
收藏
得分:0 
继承类型改为public就可以了!!
私有继承基类,基类中public成员都转化为private成员,所以不能直接访问!

2006-10-15 19:43
cl_zdl
Rank: 1
等 级:新手上路
威 望:1
帖 子:71
专家分:0
注 册:2006-10-11
收藏
得分:0 

“私有继承时,基类的共有成员和保护成员都是以私有成员身份出现在派生类中,而基类的私有成员在派生类中不可直接访问”
这是书上写的,但共有成员函数在派生类中不能被访问吗?问什么?

2006-10-15 20:30
huanguyu
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-4-26
收藏
得分:0 

可以访问的 只要是public继承的就OK 了


看越多书就发现自己越无知 于是就越想知道更多
2006-10-15 21:35
guyzzz
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-10-16
收藏
得分:0 
应该是派生类前忘加类型了吧
2006-10-16 14:30
chenjun799
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-8-25
收藏
得分:0 
继承方式要改成public
2006-10-16 16:38
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
你要分清 类和对象

2006-10-16 20:20
makewelldone
Rank: 1
来 自:江苏南京
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-9-25
收藏
得分:0 
你只要把PRIVATE 改为PUBLIC;
不过你的意思是私有继承的;
你可以把参数改一下;试试一下;
2006-10-19 17:05
xxyifan
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-10-19
收藏
得分:0 
兄弟,继承方式有问题呀
2006-10-19 17:56
lxfxiongfeif
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-10-19
收藏
得分:0 
还是看书吧!!

阿飞
2006-10-20 16:03
快速回复:[求助]c++基础问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012682 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved