社区
C++ 语言
帖子详情
继承中子类定义了与父类相同的成员变量的处理方法
new_student_
2012-10-18 01:34:21
函数的功能是输出成员变量的值。
我得到的结论是:
1,如果子类中没有重定义父类的函数,那么不管子类有没有定义与父类相同的成员变量,所输出的都是父类的成员变量。
2,如果子类中有重定义父类的函数,并且使用的是父类的成员变量,那么所输出的就是父类的成员变量。
3,只有子类中有重定义父类的函数,并且使用的是子类重定义的成员变量,那么输出的才是子类的成员变量。
我不知道我总结的对不对,所以想请问高手,谢谢大家!
...全文
715
8
打赏
收藏
继承中子类定义了与父类相同的成员变量的处理方法
函数的功能是输出成员变量的值。 我得到的结论是: 1,如果子类中没有重定义父类的函数,那么不管子类有没有定义与父类相同的成员变量,所输出的都是父类的成员变量。 2,如果子类中有重定义父类的函数,并且使用的是父类的成员变量,那么所输出的就是父类的成员变量。 3,只有子类中有重定义父类的函数,并且使用的是子类重定义的成员变量,那么输出的才是子类的成员变量。 我不知道我总结的对不对,所以想请问高手,谢谢大家!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
moyongliu
2013-01-17
打赏
举报
回复
总结的正确。
new_student_
2012-10-19
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
引用 5 楼 的回复:
引用 4 楼 的回复:
引用 3 楼 的回复:
引用 1 楼 的回复:
1,如果子类中没有重定义父类的函数,那么不管子类有没有定义与父类相同的成员变量,所输出的都是父类的成员变量===>函数跟你有没有定义相同变量有什么关系么?
我的意思是说 这个函数的内容就是输出 对象所调用的成员变量 我写的程序是:
#include <iostream>……
[/Quote]
引用跟指针虽然有差别 但是对于我这种初学者来说 也就没啥差别了
漫步者、
2012-10-19
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
引用 3 楼 的回复:
引用 1 楼 的回复:
1,如果子类中没有重定义父类的函数,那么不管子类有没有定义与父类相同的成员变量,所输出的都是父类的成员变量===>函数跟你有没有定义相同变量有什么关系么?
我的意思是说 这个函数的内容就是输出 对象所调用的成员变量 我写的程序是:
#include <iostream>
using namespac……
[/Quote]
不用指针,那就用引用吧
new_student_
2012-10-19
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
引用 1 楼 的回复:
1,如果子类中没有重定义父类的函数,那么不管子类有没有定义与父类相同的成员变量,所输出的都是父类的成员变量===>函数跟你有没有定义相同变量有什么关系么?
我的意思是说 这个函数的内容就是输出 对象所调用的成员变量 我写的程序是:
#include <iostream>
using namespace std;
class f……
[/Quote]
我不想用多态,因为这样还要引入指针,更容易混了 ,我就想看看继承下的调用这个函数所输出的成员变量值
漫步者、
2012-10-19
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
引用 1 楼 的回复:
1,如果子类中没有重定义父类的函数,那么不管子类有没有定义与父类相同的成员变量,所输出的都是父类的成员变量===>函数跟你有没有定义相同变量有什么关系么?
我的意思是说 这个函数的内容就是输出 对象所调用的成员变量 我写的程序是:
#include <iostream>
using namespace std;
class father
{
pu……
[/Quote]
很简单吗,直接在父类中把你这个方法virtual一下,然后通过多态的方式就可以完成。
new_student_
2012-10-18
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
1,如果子类中没有重定义父类的函数,那么不管子类有没有定义与父类相同的成员变量,所输出的都是父类的成员变量===>函数跟你有没有定义相同变量有什么关系么?
[/Quote]
我的意思是说 这个函数的内容就是输出 对象所调用的成员变量 我写的程序是:
#include <iostream>
using namespace std;
class father
{
public:
int a;
father(){a=3;};
void print(){cout<<a<<father::a;}
};
class son:public father
{
public:
son(){a=4;}
void print(){cout<<a<<father::a<<son::a;}
};
int main()
{
son s1;
s1.print();
return 0;
}
我想通过函数的重写来确定到底是用的哪个类的成员函数
一叶之舟
2012-10-18
打赏
举报
回复
不管是子类还是父类的函数,最好加上类名称显示调用。
漫步者、
2012-10-18
打赏
举报
回复
1,如果子类中没有重定义父类的函数,那么不管子类有没有定义与父类相同的成员变量,所输出的都是父类的成员变量===>函数跟你有没有定义相同变量有什么关系么?
在C++
中
子类
继承
和调用
父类
的构造函数
方法
构造
方法
用来初始化类的对象,与
父类
的其它成员不同,它不能被
子类
继承
(
子类
可以
继承
父类
所有的
成员变量
和成员
方法
,但不
继承
父类
的构造
方法
)。因此,在创建
子类
对象时,为了初始化从
父类
继承
来的数据成员,系统需要调用其
父类
的构造
方法
。 如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。 构造原则如下: 1. 如果
子类
没有
定义
构造
方法
,则调用
父类
的无参数的构造
方法
。 2. 如果
子类
定义
了构造
方法
,不论是无参数还是带参数,在创建
子类
的对象的时候,首先执行
父类
无参数的构造
方法
,然后执行自己的构造
方法
。 3. 在创建子
Python 实现
子类
获取
父类
的类成员
方法
大家好,今天在写代码的时候,遇到了这样一种情况。我有如下所示的几个类用来存放程序配置(其实当做命名空间来用,同时感觉能够
继承
方便一点), import os class Config: BASE_DIR = "/tmp" class TestConfig(Config): DATA_DIR = os.path.join(Config.BASE_DIR, "data") 然后我在
子类
中
想要访问
父类
的类
成员变量
,而且这两个类都是只有类
成员变量
。感觉目前我使用的
方法
笨一点,就是直接引用
父类
的名字,感觉这样的
方法
不灵活,我想找一种
方法
,可以让
子类
访问到
父类
。 我在网上搜索了一下,找了这么两种
方法
,但
ChildClass.java
## Java
子类
强转
父类
父类
引用指向
子类
对象时,没法调用
子类
特有的
方法
;
父类
引用指向
子类
对象: java
中
子类
强转
父类
,实际上依然是
子类
; 该引用只能调用
父类
中
定义
的
方法
和变量; 如果
子类
中
重写了
父类
中
的一个
方法
,那么在调用这个
方法
的时候,将会调用
子类
中
的这个
方法
; ## Java
父类
强转
子类
只有
父类
对象本身就是用
子类
new出来的时候, 才可以在将来被强制转换为
子类
对象.
Java基础知识总结(总共六章)
JAVA 基础知识总结 第一章 Java 入门 第二章标示符,运算符 第三章表达式,语句 第四章数据类型,字符串,数组 第五章类,
方法
,关键字保留字 第六章对象,
继承
,接口, 包 1. 对象: 声明对象: 类名对象名称=null; 实例化对象:对象名称=new 类名(); 类名对象名称=new 类名(); 访问属性:对象名称.属性名 访问
方法
:对象名称.
方法
名() 匿名对象:在一个对象被创建之后,调用对象的
方法
是可以不
定义
对象的引用 变量,直接调用该对象的
方法
;只是用一次的对象; 2.
继承
:可以复用代码,缩短开发周期,节约成本 就是扩展已有类的功能,在
继承
中
分为
子类
和
父类
;
父类
有时候又称为 超类,
子类
有时候成为派生类;extends
继承
类限制:在使用
继承
类的时 候虽然可以扩充类的功能,但是其本身也存在以下限制:在java
中
不允 许多重
继承
:一个
子类
只能
继承
一个
父类
,不能
继承
多个
父类
; 在java
中
允许多层
继承
,在
继承
中
子类
不能访问
父类
中
的私有操作,而 只能
继承
全部的公有操作,对于私有内容不能直接访问,但是可以通过 其他途径访问 在实例化
子类
对象时
c++模板类在
继承
中
子类
无法访问
父类
的成员
c++模板类在
继承
中
子类
无法访问
父类
的成员 问题:c++模板类在
继承
中
子类
无法访问
父类
的成员 解决
方法
:在
子类
访问
父类
时加上
父类
的前缀或使用this->调用 c++从入门到放弃,感觉c++了解的越多,就越不会(心累啊) 最近在写一套数据结构的模板库,遇到了很多问题,比如头文件的重复引入,
定义
等等,这次说说新遇到的问题,模板类的
继承
中
子类
无法访问
父类
的成员,
子类
不能访问...
C++ 语言
64,648
社区成员
250,503
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章