如何在c++中通过派生类来访问基类
如:在派生类的一个成员函数中要输出基类的一个protected类型的成员变量,怎么做啊?补充一下我的部分程序:classclock//定义类clock{public:vo...
如:在派生类的一个成员函数中要输出基类的一个protected类型的成员变量,怎么做啊?
补充一下
我的部分程序:
class clock //定义类clock
{
public:
void setTime();
void setTime(int newh,int newm,int news);
void watch();
protected:
int hour,minute,second;
};
class ring:public clock //定义闹钟类clock
{
public:
void ringTime() //定义类ring的成员函数ringTime
{
ring_hour=ring_minute=ring_second=0;
}
void ringTime(int h,int m,int s);
void ringing();
private:
int ring_hour,ring_minute,ring_second;
};
void ring::ringing() //定义响铃条件函数
{
//if((ring_hour==hour)&&(ring_minute==minute)&&(ring_second==second))
if(1)
{
cout<<ring_hour<<hour;//输出hour时出现错误,ring_hour没有问题!!!!!!!
cout<<"ringing";
cout<<"\07";
}
}
编译是能通过,但是运行得不到想要的结果啊,
想要的结果是2 2 展开
补充一下
我的部分程序:
class clock //定义类clock
{
public:
void setTime();
void setTime(int newh,int newm,int news);
void watch();
protected:
int hour,minute,second;
};
class ring:public clock //定义闹钟类clock
{
public:
void ringTime() //定义类ring的成员函数ringTime
{
ring_hour=ring_minute=ring_second=0;
}
void ringTime(int h,int m,int s);
void ringing();
private:
int ring_hour,ring_minute,ring_second;
};
void ring::ringing() //定义响铃条件函数
{
//if((ring_hour==hour)&&(ring_minute==minute)&&(ring_second==second))
if(1)
{
cout<<ring_hour<<hour;//输出hour时出现错误,ring_hour没有问题!!!!!!!
cout<<"ringing";
cout<<"\07";
}
}
编译是能通过,但是运行得不到想要的结果啊,
想要的结果是2 2 展开
5个回答
展开全部
在派生类中写一个public函数,返回值类型属于你要输出的那个成员变量的类型`
在函数里面只添加一个语句, return (该变量);
这样,如果你想得到这个变量值, 只需调用这个派生类中的函数就可以了```
当然,还有一个办法就是把基类的protected属性改为public,不过看上去你并不想这样用`
"在派生类的一个成员函数中要输出基类的一个protected类型的成员变量"刚才看错了`
你这样做是正确的`
在派生类中可以直接访问基类的protected成员;
我给你调试了一下,没有问题的,即使把那个注释取消仍然正确`
我用的编译系统是vs2003
--------------------------------------------
学习C++, bbs.onlycpp.net
在函数里面只添加一个语句, return (该变量);
这样,如果你想得到这个变量值, 只需调用这个派生类中的函数就可以了```
当然,还有一个办法就是把基类的protected属性改为public,不过看上去你并不想这样用`
"在派生类的一个成员函数中要输出基类的一个protected类型的成员变量"刚才看错了`
你这样做是正确的`
在派生类中可以直接访问基类的protected成员;
我给你调试了一下,没有问题的,即使把那个注释取消仍然正确`
我用的编译系统是vs2003
--------------------------------------------
学习C++, bbs.onlycpp.net
展开全部
本视频主要从Java语言基础、JavaSE核心、WEB全栈及数据库、Servlet/Jsp核心、 Java框架五个阶段进行讲解。在本教程中,会让大家从零基础快速掌握Java知识。想要配套学习资料的小伙伴可以联系我哦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
公有继承基类,protected类型的成员变量或成员函数对子类是可见的.你的程序没什么问题,建议换个编译器吧.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用就是了。
protected 对子类是可见的。
这样用是没有问题的。
你用的是啥编译器啊?
二楼是胡说,.net 搞久了。
protected 对子类是可见的。
这样用是没有问题的。
你用的是啥编译器啊?
二楼是胡说,.net 搞久了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用关键字base
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询