您的位置:首页 > 编程语言 > C语言/C++

指向类数据成员的指针

2017-11-16 14:23 267 查看
#include <iostream>
using namespace std;
//指向类数据成员的指针 
class Student{
public:
Student(string n, int nu):name(n),num(nu){}
string name;
int num;
};
int main(){
Student s("zhangsan",1002);
Student s1("lisi",1001);
//指向非静态数据成员的指针在定义时必须和类相关联,在使用时必须和具体的对象关联。 
//1.定义:<数据类型><类名>::*<指针名>
//2.赋值&初始化:<数据类型><类名>::*<指针名>[=&<类名>::<非静态数据成员>] 
string Student::*ps = &Student::name;
/*
3.解用引:由于类不是运行时 存在的对象。
        因此,在使用这类指针时,需要首先指定类的一个对象,
然后,通过对象来引用指针所指向的成员。 
    <类对象名>.*<指向非静态数据成员的指针>
<类对象指针>->*<指向非静态数据成员的指针>
*/ 
cout<<s.*ps<<endl;
cout<<s1.*ps<<endl;
Student *pp = new Student("wangwu",1003);
cout<<pp->*ps<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++