Lession 15 C++中一些特殊的技术
2014-08-18 22:05
239 查看
一、指向成员的指针
1. 指向数据成员的指针
int A::*pint = NULL;int A::*p = &A::m_val; // 则可以用p来访问成员m_val的值,当然是与对象挂勾的;
2. 指向成员函数的指针
void A::fun(int); //成员函数
void (A::*pf)(int);
获得成员函数地址:&A::fun;
A::pf = &A::fun; // pf是指向函数指针的指向 注意不是:pf = A::fun;
A a; a.*pf; // a.fun();
二、嵌套类
1). 在一个类中嵌套的定义另一个类;
class Tree // 内围类{
public:
class Node // 外围类
{
static int va;
};
};
嵌套类的成员函数可以在嵌套类里或外定义,但不能在外围类里定义;实现时要把外围类的作用域加入;
int Tree::Node::va;
嵌套类可以只在外围类中声明,实现放在外围类:
class A
{
public:
class B; // 声明嵌套类
int m_val;
};
class A::B // 嵌套类的实现
{
public:
int m_val; // 成员变量与A类中的成员变量可以相同;是两个不同的作用域
};
main()
{
A::B ab;
}
1. A类不能访问内部类B的非公有成员变量
2)类成员函数的名字解析
名字解析是从小{}开始寻找,依次在外围{}中找;如果要直接调用全局可以用::运算符;3)局部类
void fun(){
int v = 0;
class InC
{
public::
void Infun()
{
int a =v; // 错
}
}
}
类成员函数中定义的类;局部 类中不能定义static成员;外部不能访问局部类中的成员;
局部类中不能直接使用外围函数的变量
相关文章推荐
- 国内外的一些C++/VC++技术站点
- MyEclipse中的一些特殊的注释技术
- [自考]C++中一些特殊用法
- C/C++中macro的一些特殊使用
- 解析C++中多层派生时的构造函数及一些特殊形式
- C++ 特殊工具与技术
- MyEclipse中的一些特殊的注释技术
- [C/C++] 第18章:特殊工具与技术《 C++ Primer 》
- [C/C++] 第18章:特殊工具与技术《 C++ Primer 》
- C++ Primer 学习笔记_106_特殊工具与技术 --局部类
- Eclipse中的一些特殊的注释技术
- C和C++中一些特殊宏的应用
- C++的特殊工具与技术
- C++一些特殊的类的设计
- C/C++一些特殊关键字的作用&指针和引用的区别
- C++ 一些特殊类型用法
- C++比C多出的一些特殊问题
- C++的特殊工具与技术
- 浅析C++的特殊工具与技术
- C++的一些基本功,包括对常量成员函数的一些特殊说明