成员指针的运用续(地址与成员变量的输出)
来源:互联网 发布:淘宝网报名双11 编辑:程序博客网 时间:2024/06/06 20:34
/*
#include <iostream>
using namespace std;
#include <string>
struct Person
{
string name;
double salary;
int age;
};
int main()
{
Person per[2] = {{"zhou",5000,24},{"Li",7000,24}};
union{
//这里定义的n不再是普通意义上的n(即整型的n),而是代表相对偏移地址(字节的个数)
int n;
string Person::*mn;
double Person::*ms;
int Person::*ma;
};
mn = &Person::name;
cout << n << endl;
ms = &Person::salary;
cout << n << endl;
ma = &Person::age;
cout << n << endl;
//方式一:结构体对象.成员
/*for(i = 0; i != 2; i++)
{
cout << per[i].name << ',' << per[i].salary << ',' << per[i].age;
cout << endl;
}*/
//方式二:结构体对象.*成员指针
string Person::*pn = &Person::name;
double Person::*ps = &Person::salary;
int Person::*pa = &Person::age;
/*for(i = 0; i != 2; i++)
{
cout << per[i].*pn << ',' << per[i].*ps << ',' << per[i].*pa;
cout << endl;
}*/
//方式三:结构体对象指针->成员
Person* op = per;
/*for(i = 0; i != 2; i++)
{
cout << (op+i)->name << ',' << (op+i)->salary << ',' << (op+i)->age;
cout << endl;
}*/
//方式四:结构体对象指针->*成员指针
for(i = 0; i != 2; i++)
{
cout << (op+i)->*pn << ',' << (op+i)->*ps << ',' << (op+i)->*pa;
cout << endl;
}
return 0;
}
* 如何定义结构体成员变量(类成员变量)指针?如何输出结构体成员变量(类成员变量)的地址?
*输出结构体成员变量(类成员变量)的几种方法
*/#include <iostream>
using namespace std;
#include <string>
struct Person
{
string name;
double salary;
int age;
};
int main()
{
Person per[2] = {{"zhou",5000,24},{"Li",7000,24}};
union{
//这里定义的n不再是普通意义上的n(即整型的n),而是代表相对偏移地址(字节的个数)
int n;
string Person::*mn;
double Person::*ms;
int Person::*ma;
};
mn = &Person::name;
cout << n << endl;
ms = &Person::salary;
cout << n << endl;
ma = &Person::age;
cout << n << endl;
//访问成员方式:结构体变量(对象).*成员指针、结构体对象.成员、结构体对象指针->*成员指针(成员)
int i;//方式一:结构体对象.成员
/*for(i = 0; i != 2; i++)
{
cout << per[i].name << ',' << per[i].salary << ',' << per[i].age;
cout << endl;
}*/
//方式二:结构体对象.*成员指针
string Person::*pn = &Person::name;
double Person::*ps = &Person::salary;
int Person::*pa = &Person::age;
/*for(i = 0; i != 2; i++)
{
cout << per[i].*pn << ',' << per[i].*ps << ',' << per[i].*pa;
cout << endl;
}*/
//方式三:结构体对象指针->成员
Person* op = per;
/*for(i = 0; i != 2; i++)
{
cout << (op+i)->name << ',' << (op+i)->salary << ',' << (op+i)->age;
cout << endl;
}*/
//方式四:结构体对象指针->*成员指针
for(i = 0; i != 2; i++)
{
cout << (op+i)->*pn << ',' << (op+i)->*ps << ',' << (op+i)->*pa;
cout << endl;
}
return 0;
}
- 成员指针的运用续(地址与成员变量的输出)
- 成员指针的定义与简单应用(成员变量地址的问题)
- C++ 虚指针、成员变量与类对象的偏移地址
- 函数指针,指向成员函数的指针与指向成员变量的指针
- 类的成员变量偏移指针和成员函数指针
- 类的成员变量偏移指针和成员函数指针 .
- 通过指向结构体变量的指针变量输出结构体变量中成员的信息
- 关于类成员变量为引用与指针的思考
- 类成员变量和成员函数的地址
- 指向成员函数的指针类型成员变量
- C++学习(2)--成员变量、成员函数的指针
- 成员变量/函数指针的用法
- 成员变量/函数指针的用法
- 成员变量/函数指针的用法
- 返回内部成员变量的指针
- 类成员变量的函数指针
- 关于类的成员指针变量
- 指向对象成员变量的指针
- OEM/ODM all kinds of herbal patches
- IPV6下的ping源代码
- 获取过滤DataTable后的数据
- C++良好代码风格之我见 - 兼谈boost的工程实用价值
- Linux使用ntpdate时间同步
- 成员指针的运用续(地址与成员变量的输出)
- lucene索引库优化建议
- 江苏拟明确女职工晚育假为128天-江苏-女职工-晚育
- 天凉好个秋(连载四)
- How to get rid of EYE BAGS
- tftpd源代码
- PYTHON(DJANGO)使用日记之如何找到linux系统下django的安装路径
- poj 1011
- 关于看 linux 下网卡 速度的 信息