阅读下面的程序,分析访问属性。
class A{ public: void f1( ); int a1; protected: void f2( ); int a2; private: int a3; }; class B:public A{ public; void f3( ); protected: int b1; private: int b2; }; class C:public B { public: void f4( ); private: int c1; }; int main( ) {A a; B b; C c; return 0;}
回答下列问题,并简要说明理由。
(1)在main函数中能否用b.a1,b.a2,b.a3引用派生类B对象b中基类A的成员?
(2)派生类B中的成员函数能否调用基类A中的成员函数f1和f2?
(3)派生类B中的成员函数能否引用基类A中的数据成员a1,a2,a3?
(4)能否在main函数中用c.a1,c.a2,c.a3,c.b1,c.b2,c.c1引用基类A的成员a1,a2,a3,派生类B的成员b1,b2,以及派生类C的成员c1?
(5)能否在main函数中用c.f1(),c.f2(),c.f3()和c.f4()调用f1,f2,f3,f4成员函数?
(6)派生类C的成员函数f4能否调用基类A中的成员函数f1,f2和派生类B中的成员函数f3?
有一函数:
写一程序,输入x,输出y值。
A.BC(int a, int); B. BC(int,int);
C.DC(int,int=5); D. BC(int x; inl y);
for(int i=0;i<3;i++) {
printf("ping %s..%d\n",inet_ntoa(to.sin_addr),i+1);
FillPackage(buf,dstIP,(u_short)pid);//组装icmp包
if((sock,buf,PACKAGE_SIZE,0,(struct sockaddr *)&to,len) == SOCKET_ERROR)
break;
(&from,0,sizeof(from));
len = sizeof(from);
if( recvfrom(sock,buf,PACKAGE_SIZE,0,(struct sockaddr *)&from,&len) == SOCKET_ERROR)
break;
IPHeader *pIPHdr = (IPHeader *)buf;
ICMPHeader *pICMPHdr = (ICMPHeader *)(buf+sizeof(IPHeader));
if(pICMPHdr->id == htons((u_short)pid) && pICMPHdr->seq == htons((u_short)pid) && pICMPHdr->type == ICMP_ECHO_REPLY) {
printf("Echo Reply From %s,\n",inet_ntoa(.sin_addr));
}
}