一些零散的C++语法思考
来源:互联网 发布:蔡英文 知乎 编辑:程序博客网 时间:2024/04/28 04:47
1.关于声明形式为CLASS::*MEMBER的用法。
看下面例子:
#include<iostream>
using namespace std;class A{
public:
A(int c):b(c){}
int b;
};
void fun(A a,int A::*b){
cout<<a.*b<<endl;
}
int main(){
A a(2);
fun(a,&A::b);
return 0;
}
运行结果是2。
假如在程序中有一个声明形式为A::*b的语句,该怎么理解:
应该是理解成A中成员b的一个指针。A中有一个int b成员,但是该成员并不是指针类型的,为了特指A中b的一个指针类型,所以应该用int A::*b的声明形式,这样子声明之后,在给该声明传值时,应该写成&A::b,并且为了能够引用该值,还应该传一个参数A a,如上面程序所示。
为什么在声明时不直接写成int *A::b,很显然,这样子表示A中有一个int*类型的b,显然是错误的,所以,为了表示类中某个成员的指针,一般声明成CLASS::*MEMBER的形式。
0 0
- 一些零散的C++语法思考
- lua语言基础(1)一些零散的语法
- 一些零散的笔记
- 一些零散的笔记
- 一些零散的记录
- 对C和C++区别的一些零散总结
- 一些简单,零散的知识点。。
- C#一些零散的东西
- C#一些零散的东西
- Android的一些零散知识
- 记录一些零散的知识。
- C#的一些零散东西
- C++的一些零散知识
- 做题时的一些零散知识点
- 菜鸟初学c++,一些零散小知识点
- Ojbective-C的一些语法
- c的一些基本语法
- C语言-零散的笔记
- NoSQL之图数据库
- java线程阻塞与唤醒
- HTML5 中 div section article 的区别
- php判断手机系统
- XML在参数中的应用-2
- 一些零散的C++语法思考
- js-tab标签效果
- Spark-1.3.1集群环境搭建
- 【图说】2014这些高格调装逼干货都不好意思不知道
- linux中fork()函数详解
- mybatis中的#和$的区别
- Random Sample Consensus(RANSAC)算法介绍
- 信息系统项目人员转移流程
- 64bit CentOS搭建基于LAMP架构的discuz 3.2论坛