注:文章内容来源于网络,真实性有待确认,请自行甄别。
关于继承与派生的问题#include<iostream.h
发表于:2024-10-24 00:00:00浏览:6次
问题描述:#include<tream.h>classA{ (){cout<<'A'<<endl;}}; { (){cout<<'B'<<endl;}};voidmain(){A*p;Bb;p=&b;(*p).fun();b.fun();}请问,为什么输出是A,B;而不是B,B呢?
楼主,你应该看到以下两条语句:
(*p).fun();
b.fun();
这说明什么呢?先说第一条:
对于(*p).fun(); 来说,p指针是“一个A类定义的指针”,因此,p遵守的规则局限于A类的函数。也就是说,p指针只会引用A类定义的函数。所以,(*p).fun(); 的结果就执行了如下代码:
void fun()
{
cout<<'A'<
猜你喜欢
- 提问c++的问题#include"iostream.h"void
- #include"tream.h" void main() {int k=0; char c='A'; do{switch(c++) {case'A':k++;break; case'B':k--; case'C':k+=2;break; case'D':k=k%2;continue; case'E':k=k*10;break; /3;} k++;} while(c<'G');cout<<"k=...
栏目分类全部>