****** 类中成员变量在内存中的分布是怎样的?---1

#include<stdio.h>
#include"stdlib.h"
#include<iostream>
using namespace std;

//69
class A69
{
public:
int _a;
A69()
{
   _a = 1;
}
A69(int i) : _a(i)
{
}
    virtual void print() //想想,这个在编译的时候,就已经确定了要输出哪一个了,肯定是A的_a啊!
{
   cout << _a << endl;
}

friend void f1(A69& a);
friend void f2(const A69& a);
friend void f3(A69 a);
friend void f4(const A69 a);
};
void f1(A69& a) //不能将参数 1 从“int”转换为“A69 &”
{
cout << a._a << endl;
}
void f2(const A69& a)
{
cout << a._a << endl;
}
void f3(A69 a)
{
cout << a._a << endl;
}
void f4(const A69 a)
{
cout << a._a << endl;
}

class B69:public A69
{
public:
int _a;
B69()
{
   _a = 2;
}
};

int main()
{
B69 b;
A69 *a69 = &b;
cout << "数据成员:" << a69->_a << endl;

b.print();
cout << ((A69)b)._a << endl;
cout<< b._a << endl;

f1(b);
f2(b);
f3(b);
f4(b);

//f1(3); //不能将参数 1 从int转换为A69 &
f2(3);
f3(3);
f3(3);
}

结果

数据成员:1
1
1
2
1
1
1
1
3
3
3

分析:print函数在编译的时候,就已经确定了要输出A的_a。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值