请问
classB:private A
{
public:
B(int p1):A(p1)这一排“:”的意思,作用是什么
}
关于c#的一个符号“:”的询问
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 於黾 2022-05-31 17:24关注
B(int p1):A(p1)
你可以理解为
B(int p1)
{
base.A(p1)
}
但是因为A是构造函数,不可以直接这样调用
其实作用就是把B构造函数里传入的值传递给A的构造函数
如果不传,那么父类会默认走无参的构造函数,而不会走对应的有参构造函数
-=-=-=-
举个例子说明这是干啥用的
比如你有一个父类Person
下面有三个子类,教师,学生,工人
每个人都有名字,那么名字当然应该定义在父类中,而不是在每个子类中都定义一遍
那么为了不要忘记给名字赋值,应该在new的时候就传入名字而不是new之后在外面传入,也就是应该有一个带参数的构造函数用来传递名字
那么好了,既然名字存在父类里,那么把构造函数里的名字存到父类属性的这个操作也应该是父类的构造函数来完成,而不是每个子类的构造函数都执行一遍
可是如果你的子类在实例化的时候不把参数继续向上传递,那么父类其实走的是无参的构造函数,也就是传入的名字被丢弃了
所以你大概了解了这个是干什么用的了吧本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
- ¥20 Java-Oj-桌布的计算
- ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
- ¥20 有人知道这种图怎么画吗?
- ¥15 pyqt6如何引用qrc文件加载里面的的资源
- ¥15 安卓JNI项目使用lua上的问题
- ¥20 RL+GNN解决人员排班问题时梯度消失
- ¥60 要数控稳压电源测试数据
- ¥15 能帮我写下这个编程吗
- ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路