跟着教材《Visual C++ 2010 MFC 编程入门》.pdf 学习了2周,感觉有些基础的概念不太清楚,所以找出网易学堂的VC++课程进行学习http://tech.163.com/special/0009159F/vc.html
===========================================
[第二课 C++经典语法与应用 类的编写与应用]
===========================================
构造函数:采用类的方式来保证它的唯一性,取个类名,没有返回值,对类里的变量进行初始化。
析构函数:回收内存,没有返回,没有参数。例:
#include<iostream>
using namespace std;
class Point{
public:
int x;
int y;
Point(){ //构造函数,同,类名
x = 0;
y = 0;
}
Point(int a, int b){ //构造函数,带参
x = a; y = b;
}
~Point(){ //析构函数,取反符号+类名
}
void output(){
cout<<x<<endl<<y<<endl;
}
void output(int x, int y){
this->x = x; //this point, 指向对象
this->y = y;
}
};
void main(){
Point pt(3,3);
pt.output(5,5);
pt.output();
}
上例中,出现了两个Point()构造函数,这种情况称为函数的重载:函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。参考:http://www.cnblogs.com/skynet/archive/2010/09/05/1818636.html
this指针是一个隐含的,指向对象本身,代表对象地址的指针;一个类所有的对象调用的成员函数都是同一代码段,如何区分不同对象但是同一类下的成员函数的执行呢?其实,成员函数除了接受参数外,还接受了一个对象的地址,这个地址被一个隐含的形参this指针所获取ÿ