成员变量与成员函数
来源:互联网 发布:灯光 控台 软件 编辑:程序博客网 时间:2024/04/25 14:39
本地变量:在函数内部声明以及定义的变量。
成员变量:类的变量,在声明类时声明成员变量(头文件),在定义类的对象时定义成员变量。
成员函数:类的函数,在声明类时声明成员变量(头文件),源文件中定义类的函数
1. 类的头文件中:
class A//声明类A
{
private:
int i;//声明成员变量
public:
void f();//声明成员函数
}
2. 类的源文件中:
void A::f()//定义类A中的成员函数
{
printf("%d\n", i );
}
3. 源文件中:
A a;//定义类的对象a(同时定义了该对象中的成员变量a.i)
a.f();//对象a调用类A中的成员函数f()
注意:成员变量属于类的对象(a),成员函数属于类(A)。
如何理解成员函数的调用过程?
a.f(); 可以等效成f(&a);
简单看来(不考虑私有变量、作用域等区别),成员变量与成员函数可以改成结构体与全局函数:
1. 结构体声明
struct A{
int i;
}
2. 全局函数的声明与定义
void f(A* p)//成员函数的定义
{
printf("%d\n", p->i );
}
3. 结构体的定义(包括结构体中变量的定义)
A a;
那么,成员函数(A::f())怎么知道对象的成员变量(a.i)的地址?
this:the hidden parameter for all member functions
在a.f()中,对于A::f()来说,this就是指向对象a的指针。
即成员函数的完整表示为:
void f(A* this);//成员函数的声明
void A::f(A* this)//成员函数的定义
{
printf("%d\n", this->i );//类似C语言的写法
}
只不过,在C++中,this被隐藏。
- 成员变量与成员函数
- 静态成员变量与静态成员函数
- const成员变量与成员函数
- static 修饰成员变量与成员函数
- 静态成员变量 与 静态成员函数
- 静态成员变量与静态成员函数
- const成员变量与成员函数
- 静态成员变量与静态成员函数
- static成员函数成员变量
- 静态成员变量成员函数
- C++ static成员变量与static成员函数
- C++ static成员变量与static成员函数
- C++ 静态成员变量与静态成员函数
- c++学习之const成员变量与成员函数
- c++学习之const成员变量与成员函数
- C++ static成员变量与static成员函数
- c++中的静态成员变量与静态成员函数
- C++ 中的静态成员函数与静态成员变量
- LeetCode448.Find All Numbers Disappeared in an Array题解
- C#自动类型转换基本规则
- [一个人的项目] 序
- 我的苦行主义与受虐倾向
- Activity初始化数据initData()时的多线程同步处理
- 成员变量与成员函数
- 为什么一个以”.java”为后缀的源文件只能有一个与文件名相同的类?
- Android中的AndroidMainfest.xml文件
- [大型网站系统与Java中间件实践]--构建Java中间件的基础
- python imdb中的IMDb
- codevs1154 能量项链 入门dp
- JAVA实现LinkedList链表
- java入门
- Windows下使用git bash生成ssh文件