使用类的方法的共有接口对类对象进行操作
数据的隐藏:
类的数据成员是私有的(默认值),就只能通过成员函数来访问这些数据
类的封装:
实现的具体细节都是隐藏的叫做封装
对象和类之间的关系:
类定义了一种类型.包括如何使用他。对象是1个变量或其他数据对象(如由new生成的,并根据
类定义被创建和使用. 类和对象之间的关系同标准类型与其变量之间的关系相同。
this:
隐式地址,指向用于调用方法的对象
*this:
对象本身
类和结构唯一的区别:
结构成员默认访问方式是public,而类是private
默认构造函数:
class-name identifer:;//必须没有{}否则不会被编译
cosnt成员函数:
const声明在后面:如 void show()const;
友元函数:
在类的声明中写入函数原型,前面加上friend关键字,在定义函数时不要加friend和类名作用域限定符
状态成员:
使用一个变量存储模式,变量内存储什么样的内容就代笔什么模式
使用中括号[]表示法访问字符:
String opera("the magic city");
operator [](int i)
{
return str[i];
}
opera.operator[](4);//'m'
静态类成员函数: 需要显示调用类成员函数
static int Howmany(){return num_strings;}
int count =String::Howmany();//调用静态类成员函数
*//静态成员函数不能使用:this:指针
复制构造函数:
具有复制功能的构造函数(深复制,非指针复制即浅复制)
^#^函数原型:Star(const Star &);//其中Star为类
***何时使用复制构造函数:
1):将新的对象初始化为一个同类对象
2):按值将对象传递给函数;
3):函数按值返回对象
4):编译器生成临时对象
派生类的调用:
先调用进入派生类函数入口,再转到相关基类
类成员的修改:
只能通过相应方法修改(成员函数或称作接口)
如何实现多态公有继承:
1):在派生类中重新定义基类的方法
2):使用虚方法
如何访问基类中的成员:
把基类成员声明为protected
纯虚函数:
定义其为0,以便声明未实现的方法,当类中有纯虚函数时,不能创建该类的对象
转换构造函数:
定义了从参数类型到类类型的转换
Star(const char*);//转换char* 为Star类
Star(const Spectral &,int members=1);//转换Spectral到Star,即Spectral为Star的基类
按值传递对象与传递引用:
按值传递对象即调用复制构造函数,然后调用析构函数,慢,如果不需要方法修改对象,则应声明
方法为const引用
返回对象和返回引用:
何时返回对象:函数不能返回在函数中创建的临时对象的引用,如:
Vector Vector::operator+(const Vector & b) cosnt
{
return Vector(x+b.x,y+b.y);
}//通过构造函数创建一个新对象,然后返回该对象的拷贝
使用const:
如何让方法不修改参数(对象成员):
Star::Star(const char * s){...}
如何让方法不修改对象:
Star ::Show() const{...}
虚函数:
基类为虚函数时,派生类也为虚函数,因为虚函数才可以重载,虚函数采用动态联编
方式
没有评论:
发表评论