六一的部落格


关关难过关关过,前路漫漫亦灿灿。



-
数据成员
函数成员
友元
类型成员
静态成员

成员访问运算符

-
点运算符 左操作数是类对象
箭头运算符 左操作数是类类型指针

与类有关的非成员函数

这些函数不作为类的接口,但与类相关. 建议与类的定义和实现放在一处

如果需要访问类的private和protected成员,则需要将其定义为类的友元

 1struct Sales_data
 2{
 3    string isbn() const { return bookNo; }
 4    string bookNo;
 5};
 6
 7istream &read(istream &is, Sales_data &item)
 8{
 9    is >> item.bookNo;
10    return is;
11}
12
13ostream &print(ostream &os, const Sales_data &item)
14{
15    os << item.isbn();
16    return os;
17}

前向声明

仅声明类的存在, 而未给出类的定义. 此时类是一个不完全类型

  1. 可以在类中定义不完全类型的指针或引用
  2. 不可以在类中定义不完全类型的数据成员
  3. 可以声明不完全类型作为返回类型和形参类型的函数,但不能给出定义

类的组成


-
数据成员
函数成员
友元
类型成员
静态成员

成员访问运算符

-
点运算符 左操作数是类对象
箭头运算符 左操作数是类类型指针

与类有关的非成员函数

这些函数不作为类的接口,但与类相关. 建议与类的定义和实现放在一处

如果需要访问类的private和protected成员,则需要将其定义为类的友元

 1struct Sales_data
 2{
 3    string isbn() const { return bookNo; }
 4    string bookNo;
 5};
 6
 7istream &read(istream &is, Sales_data &item)
 8{
 9    is >> item.bookNo;
10    return is;
11}
12
13ostream &print(ostream &os, const Sales_data &item)
14{
15    os << item.isbn();
16    return os;
17}

前向声明

仅声明类的存在, 而未给出类的定义. 此时类是一个不完全类型

  1. 可以在类中定义不完全类型的指针或引用
  2. 不可以在类中定义不完全类型的数据成员
  3. 可以声明不完全类型作为返回类型和形参类型的函数,但不能给出定义