10-2 抽象和类

10.2抽象和类

10.2.1C++中的类

定义部分:

1.类声明:数据和公有接口(方法)

2.类方法定义:类成员函数的实现

接口说明

类设计不允许使用者直接访问类,而需要使用方法来访问或更改类的属性

1.访问控制

关键字public和private(默认)限制了类的访问权限

公有成员函数提供对象和程序之间的接口

2.控制对成员的访问:公有还是私有

1.数据和函数都可以在公有或私有部分声明

2.但是隐藏数据是OOP的目标之一,所以一般放在私有里

10.2.2定义方式

使用class来定义类

class Stock
{
private://可不写
std::string company;
long shares;
double share_val;
double total_val;
public:
void acquire(const std::string &co, long n, double pr);
void show();
}

10.2.3实现类成员中的函数

类成员函数与常规函数定义类似,有函数头和函数体,返回值和参数,但有两个必须的特征:

1.使用作用域解析运算符::来标志函数所属的类

2.类方法可以访问类的private组件

特征1

案例

void Stock::update(double price)

注:这标志了update属于Stock类,同时同类函数调用时无需使用作用域解析运算符::

特征2

案例

class Stock//类声明
{
private:
std::string company;
long shares;
double share_val;
double total_val;
public:
void acquire(const std::string &co, long n, double pr);
void show();
void update(double price)
}

void Stock::update(double price)//其中一个函数的定义
{
std::cout<<"company:"<<company;//直接访问私有属性
}
内联方法

定义位于类声明中的函数自动成为内联方法

10.2.4方法使用哪个对象

使用成员运算符来使用对象的成员函数

例如

Stock Jeo;
Jeo.show();

注:方法选用调用它的数据成员