#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
using namespace std;
class baseAB
{
public: baseAB(int aa,int bb):a(aa),b(bb)
{
cout<<"base constrater"<<endl;
}
protected: int a;
protected:int b;
public: virtual void fun1()
{
cout<<"basefun1"<<endl;
}
public: void fun2()
{
cout<<"basefun2"<<endl;
}
};
class A:public baseAB
{
public:
A(int aa,int bb,int cc): baseAB(aa,bb)
{
cout<<"A constrater"<<endl;
c=cc;
}
public: int c;
};
int _tmain(int argc, _TCHAR* argv[])
{
A as(3,5,6);
baseAB* pa = &as;
pa->fun1();
pa->fun2();
//pa->c //error 访问不到
int s=((A*)pa)->c;//容易被忽视的点
char strbuff[10]={};
itoa(s,strbuff,16);
string s1(strbuff);
cout<<s<<endl;
system("pause");
//Sleep(10000);
return 0;
}
C++子类赋值给父类,调用。
最新推荐文章于 2024-05-29 21:02:23 发布