1. 类是面向对象程序设计方法的核心,利用类可以实现对数据的封装和隐蔽。在面向对象程序设计中,程序模块是由类构成的,类是对逻辑上相关的函数与数据的封装,它是对问题的抽象描述。因此集成程度更高,更适合于大型复杂程度的开发。

  2. c++的基本数据类型也远不能满足描述现实世界中各种对象的需要。于是c++提供了对自定义类型的支持,这就是类。可以用自定义类的变量表示“时钟”,“汽车”,“几何图形”或“人”等对象。正如基本数据类型隐含包括了数据和操作,在定义一个类时也要说明数据和操作。

  3. 当定义一个类之后,便可以定义该类的变量,这个变量就称为类的对象。

  4. 定义类的语法形式如下:
    class 类名称
    {
    public:
    外部接口
    protected:
    保护型成员
    private:
    私有成员
    };
    封装了某类的数据和行为,称为该类的数据成员和函数成员。其中public,protected,private分别表示对成员的不同访问控制权限。注意,在类中可以只声明函数的原型,函数的实现(函数体)可以在类外定义。

  5. 类的成员包括数据成员和函数成员,分别描述问题的属性和行为。
    公有类型成员定义了类的外部接口。公有成员用public关键字声明,在类外只能访问类的公有成员。
    在关键字private后面声明的就是类的私有成员,私有成员只能被本类的成员函数访问,来自类外部的任何访问都是非法的。
    保护类型成员的性质和私有成员的性质相似,其差别在于继承过程中对产生的新类影响不同。

  6. 类实际上一种抽象机制,它描述了一类事物的共同属性和行为。在c++中,类的对象就是该类的某一特定实体(即实例)。
    声明一个对象:类名 对象名
    Clock myclock;
    定义了类和对象,就可以访问对象的成员,这种访问采用的是“.”操作符。
    对象名.数据成员名
    对象名.函数成员名(形参表)
    在类的外部只能访问到类的公有成员,在类的成员函数中,可以访问到类的全部成员。

  7. 类的成员函数描述的是类的行为。
    实现成员函数时要指明类的名称:
    返回值类型 类名::函数成员名(参数表)
    {
    函数体
    }
    ①在成员函数中可以不使用“.”操作符而直接引用目的对象的数据成员。在成员函数中引用其它对象的属性和调用其它对象的方法时,都需要使用“.”操作符。
    ②注意,在类的成员函数中,既可以访问目的对象的私有成员,又可以访问当前类的其它对象的私有成员。
    ③带默认形参值的成员函数:类成员函数的默认值,一定要写在类定义中,而不能写在类定义之外的函数实现中。

  8. 如果有函数成员需要被频繁调用,而且代码比较简单,这个函数也可以定义为内联函数。内联成员函数的函数体也会在编译时插入到每一个调用它的地方。这样做可以减少调用的开销,提高执行效率,但是却增加了编译后代码的长度。只有相对简单的成员函数才可以声明为内联函数。
    ①内联函数的声明有两种方式:隐式声明和显式声明。
    ②将函数体直接放在类体内,称为隐式声明。
    ③可以采用关键字inline显式声明的方式。即在函数体实现时,在函数返回值类型前加上inline,类定义中不加入函数体。

程序实例:时钟类的完整程序

#include
using namespace std;

class Clock{
     
public:
	void setTime(int newH=0,int newM=0,int newS=0);//默认形参值
	void showTime();
private:
	int hour,minute,second;
};

void Clock::setTime(int newH,int newM,int newS){
     
	hour=newH;
	minute=newM;
	second=newS;
}
inline void Clock::showTime(){
     
	cout<<hour<<minute<<second<<endl;
}

int main(){
     
	Clock myClock;
	cout<<"First time set and output:"<<endl;
	myClock.setTime();
	myClock.showTime();
	cout<<"Second time set and output:"<<endl;
    myClock.setTime(8,30,30);
	myClock.showTime();
	return 0;
}

你可能感兴趣的:(笔记)