1.封装
汇编语言是对机器硬件的封装,c语言是对汇编的封装,c++可以让程序员对要解决的问题进行整体建模。
这种建模的结果就是“对象”。
2.对象
世界万物都是对象。任何一个对象都可以分为“属性”和“行为”。
属性用来描述对象的状态。
行为用来描述对象的功能。
在c++中用“类”来描述“对象”,但非对象本身。
3 class dog
4 {
5 int eye;
6
7 public:
8 int nose;
9 void geteye();
10 int tail;
11 private:
12 void play()
13 {
14 int ey;
15
16 }
17
18 protected:
19 int ear;
20 };
类可以没有类名,这样的话,只能定义一次该类对象,以后就不能够重新定义对象了。
class
{
int x;
public:
int a;
};
在c++中关键字struct和class是一样的,同样用来进行类的定义,但是在用struct进行类定义时,默认
类成员都是public的,class则默认是私有的。
struct abc
{
int x;
float y;
};
3. This指针
一个类定义多个对象时,每个对象都有自己独立的成员变量,但成员函数确是共享的。
int geteye() ===> int geteye(dog *this) c++在编译的时候加入this指针。
a1.geteye()====>a1.geteye(&a1);
void s::f()
{
int a;
void f();
}栈溢出。
void s::f()
{
:: a;
::f();
}
::f(); 调用全局的f()。
::a++;使用全局的变量a,没有::则为类里面的
4. 友元
如果一个函数需要访问其他类里的私有变量,???
c++中提供了friend关键字。
在某个类中,可以用friend关键字声明的其他类中变量或者函数访问自己类中的私有成员。
嵌套类并不能访问“被嵌套”类的私有成员。
4 struct Holder
5 {
6 private:
7 int a[sz];
8 public:
9 void initialize();
10 /*stadand step to be friend class*/
11 struct Pointer;
12 friend Pointer;
13 struct Pointer
14 {
15 int b;
16 public:
17 void next();
18 };
19
20 };
1.由于友元函数不是类的成员函数,因此,对友元函数访问权限无效,可以放在,private,public,
protected中任意段。