隐藏数据是OOP主要的目标之一,因此数据项通常放在私有部分,组成类接口的成员函数放在共有部分.
类成员函数
1.定义成员函数时,使用作用于解析运算符(::)来标识函数所属的类;
2.类方法可以访问类的private组件.
class className
{
private:
data member declarations
public:
member function prototypes
}
公有部分的内容构成了是的抽象部分–公有接口.将数据封装到私有部分中可以保护数据的完整性,这称为数据的隐藏.
指定类设计的第二步是实现类成员函数.可以在类声明中提供完整的函数定义,而不是函数原型,但是通常的做法是单独提供函数定义(除非函数很小).在这种情况下,需要使用作用于解析运算符来支出成员函数属于哪个类.
所创建的每个新对象都有自己的存储空间,用于存储其内部变量和类成员:但东一个类的所有对象共享同一组类方法,即每种方法只有一个副本.同一类的实例化对象,将执行同一个代码块,知识将这些代码块用于不同的数据.
在OOP中,调用成员函数被称为发送消息,因此将同样的消息发给两个不同的对象将调用同一个方法,该方法被用于两个不同的对象.
构造函数
class Test
{
public:
Test() //无参构造方法
{
a=10;
}
Test() //有参构造方法
{
a=num;
}
Test(const Test & obj) //拷贝构造方法
{
}
}
析构函数
调用析构函数由编译器决定,通常不应该在代码中显式地调用析构函数.
如果创建的是静态存储类对象,则其析构函数将在程序结束时自动被调用.
如果创建的是自动存储类对象,则其析构函数将在程序执行完代码块时自动被调用.
如果对象是用new创建的,则它将驻留在栈内存或堆中,当使用delete来释放内存时,其析构函数将自动被调用.
最后,程序可以创建临时对象来完成特定的操作,在这种情况下,程序将在结束对该对象的使用时自动调用其析构函数.
public private protected
用class声明默认是private,用struct声明的默认是public
public 可以在类的所有外部使用
private 只能在类的内部使用
protected 在继承中使用
c++对象管理模型