《C++必知必会》读书笔记3

简介:

指向数据成员的“指针”并非指针。

#include <iostream>
using namespace std;

class A{
public:
	A(){
		//do nothing here.
	}
	A(int num,double num2){
		this->num=num;
		this->num2=num2;
	}
	int num;
	double num2;
};

int _tmain(int argc, _TCHAR* argv[])
{	
	A* pA=new A(5,6);

	int A::* p=&A::num;  //p是一个指针,指向A的一个int成员
	double A::*p1=&A::num2;
	cout<<p<<endl;   //输出偏移量 而不是地址
	cout<<p1<<endl;

	//通过偏移量访问数据成员
	cout<<pA->*p<<endl;
	cout<<pA->*p1<<endl;

	delete pA;
	return 0;
}

image

指向成员函数的指针并非指针:

#include <iostream>
using namespace std;

class A{
public:
	void function( int num);
	bool function1()const;
	virtual bool function2() const=0;
};

class B:public A{
public :
	bool function2()const;
};

int _tmain(int argc, _TCHAR* argv[])
{	
	void (A::* p)(int)= &A::function;  //不是地址,而是一个指向成员函数的指针
	
	bool (A::* p1)()const =&A::function1;  // 指向成员函数的指针可以指向一个常量成员函数

// 	B b;
// 	A *a=&b;
// 	(a->*p1)();
// 	(b.*p1)();

	return 0;
}

==============================================================================

本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/03/25/2416495.html,如需转载请自行联系原作者

相关文章
|
6月前
|
存储 安全 编译器
[笔记]读书笔记 C++设计新思维《一》基于策略的类设计(下)
[笔记]读书笔记 C++设计新思维《一》基于策略的类设计(下)
|
6月前
|
存储 算法 Java
[笔记]读书笔记 C++设计新思维《二》技术(Techniques)(二)
[笔记]读书笔记 C++设计新思维《二》技术(Techniques)(二)
|
6月前
|
安全 编译器 C++
[笔记]读书笔记 C++设计新思维《二》技术(Techniques)(一)
[笔记]读书笔记 C++设计新思维《二》技术(Techniques)
|
6月前
|
安全 Java C++
[笔记]读书笔记 C++设计新思维《一》基于策略的类设计(上)
[笔记]读书笔记 C++设计新思维《一》基于策略的类设计
|
6月前
|
存储 编译器 程序员
C++ Primer Plus 第6版 读书笔记(10) 第十章 类与对象
C++ Primer Plus 第6版 读书笔记(10) 第十章 类与对象
37 0
|
6月前
|
存储 关系型数据库 编译器
C++ Primer Plus 第6版 读书笔记(9)第 9章 函数——内存模型和名称空间
C++ Primer Plus 第6版 读书笔记(9)第 9章 函数——内存模型和名称空间
62 1
|
6月前
|
存储 算法 编译器
C++ Primer Plus 第6版 读书笔记(8)第 8章 函数探幽(二)
C++ Primer Plus 第6版 读书笔记(8)第 8章 函数探幽(二)
32 1
|
6月前
|
存储 Java 编译器
C++ Primer Plus 第6版 读书笔记(8)第 8章 函数探幽(一)
C++ Primer Plus 第6版 读书笔记(8)第 8章 函数探幽(一)
23 0
|
存储 程序员 C++
《高质量C/C++编程》读书笔记三
《高质量C/C++编程》读书笔记三
60 0
|
Unix 程序员 C语言
《高质量C/C++编程》读书笔记二
《高质量C/C++编程》读书笔记二
36 0

热门文章

最新文章