64,648
社区成员
发帖
与我相关
我的任务
分享
#include "iostream.h"
class A
{
public :
void print()
{
cout<<"In class A\n";
}
};
class B:public A
{
public:
void print()
{
cout<<"In class B\n";
}
};
int main(void)
{
A a;
B b;
A *pa=&b;//基类指针pa指向派生类的对象b,只截取b中的一部分,这个可以理解
B *pb=(B*)&a;//派生类指针pb指向基类对象a,
pa->print();
pb->print();//为什么打印的是“In class B”?,而不是“In class A”
return 0;
}
#include <iostream>
using namespace std;
class A
{
public :
void print(int i)
{
cout<<"In class A\n";
cout << i << endl;
}
private:
int aa;
};
class B:public A
{
public:
B(){ bb = 55;bb = 'e';}
void print1(int i)
{
cout<<"In class B\n";
cout << i << endl;
cout << aa << endl;//随机数
cout << bb << endl;//怎么就是输出4?
}
private:
int aa;
char bb;
};
int main(void)
{
A a;
B b;
A *pa=&b;//基类指针pa指向派生类的对象b,只截取b中的一部分,这个可以理解
B *pb=(B*)&a;//派生类指针pb指向基类对象a,
pa->print(5);
pb->print1(55);//为什么打印的是“In class B”?,而不是“In class A”
system("pause");
return 0;
}
#include <iostream>
using namespace std;
class A
{
public :
void print(int i)
{
cout<<"In class A\n";
cout << i << endl;
}
private:
int aa;
};
class B:public A
{
public:
B(){ bb = 55;bb = 'e';}
void print(int i)
{
cout<<"In class B\n";
cout << i << endl;
cout << aa << endl;//随机数
cout << bb << endl;//怎么就是输出4?
}
private:
int aa;
char bb;
};
int main(void)
{
A a;
B b;
A *pa=&b;//基类指针pa指向派生类的对象b,只截取b中的一部分,这个可以理解
B *pb=(B*)&a;//派生类指针pb指向基类对象a,
pa->print(5);
pb->print(55);//为什么打印的是“In class B”?,而不是“In class A”
system("pause");
return 0;
}
#include "iostream.h"
class A
{
public :
void print()
{
cout<<"In class A\n";
}
};
class B:public A
{
public:
void print()
{
cout<<"In class B\n";
}
};
int main(void)
{
char ch = 'A';
B *pb = (B *)&ch;
pb->print();//这里照样能输出In class B,这里意义何在呢?
return 0;
}