一.类
类(class)是对结构体struct的增强,也是用于自定义类型的。
struct Object{
int a;
int b;
double c;
doible d;
};
class Object{
public:
int a;
int b;
double c;
doible d;
};
将关键字struct改为class,增加访问修饰符public
- 访问其成员变量的方法:
Object obj;
obj.a=11;
obj.b=12;
obj.c=13.0;
obj.d=14.0;
- 访问修饰符
public,private,用于表示类的成员是否允许被外部访问。
public:公开的,所列的成员可被外部访问。
private:私有的,所列的成员不可以被外部访问。
例如,
class Object{
public:
int a;
int b;
private:
double c;
double d;
};
则,a,b允许被外部访问;c,d不允许被外部访问。
- 成员函数
定义在class内的函数,称为该类的成员函数。例如,
class Object{
public:
int x;
int u;
void Test(){
printf("hello world");
}
};
- 成员函数的访问
Object obj;
obj.Test();
Object* P = &obj;
P->Test();
成员函数同样受访问修饰符的限制,被public修饰的可以被外部访问,被private修饰的不可以被外部访问。
二.this指针
class Object{
public:
int x;
int y;
void Test(){
printf("x=%d, y=%d\n", this->x,this->y);
}
};
当Test被调用时,已经把对象obj的指针传给它了。使用this指针时,不受public,private的限制。this指针是可以省略的,编译器会自己给它加上"->"
重命名问题:就近原则
“::” 全局符号
“this ->” 成员符号