****** 类中成员变量在内存中的分布是怎样的?---1
2012-10-17 16:22
274 查看
#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。
#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。
相关文章推荐
- 类中成员变量在内存中的分布是怎样的?---2
- 类中成员变量在内存中的分布是怎样的?---3
- 结构体(或者联合体)变量的成员在内存里是如何分布的
- C++ 类内部的成员变量的内存分布
- c++ 成员函数与变量的内存分布
- python中的变量怎样开辟内存
- C/C++变量在内存中的分布
- C++变量在内存中的分布
- 成员变量和局部变量的初始化和内存运行机制分析
- C++对象中数据成员的内存分布
- C/C++变量在内存中的分布
- C/C++变量在内存中的分布
- C语言中sizeof求结构体大小(让你真正了解结构体成员在内存中的分布情况)
- 父子实例的内存控制--继承成员变量和继承方法的区别
- java中成员变量和局部变量在内存中的分配
- c语言中关于变量的内存分布(关于变量的存储)
- 成员变量的初始化和内存中的运行机制
- 《coredump问题原理探究》Linux x86版6.1节C++风格数据结构内存布局之无成员变量的类
- 内存对齐(成员涉及基本变量和位域,不涉及虚函数、虚基类)
- 结构体成员的内存分布与对齐