编程语言
首页 > 编程语言> > C++(面向对象介绍1、2,类与对象1)

C++(面向对象介绍1、2,类与对象1)

作者:互联网

面向对象介绍1,2是方法论,省略。 

(1)类声明

(2)公有、私有、保护成员

(3)数据抽象和封装

1、类声明

//类是一种用户自定义类型,声明形式:

class类名称

{

  public:

      公有成员(外部接口)

  private:

      私有成员

  protected:

      保护成员

};

¥以时钟显示为例:有头文件(Clock.h),源文件(Clock.cpp),测试文件(test.cpp)

//Clock.h

//#pragma once
//防止文件重复定义,推荐下面这种写法,提高移植性

#ifndef  _CLOCK_H_
#define  _CLOCK_H_

class Clock
{
public:
    int hour_;
    int minute_;
    int second_;

public:
    void Display();
    void Init(int hour,int minute,int second);

};
#endif // ! _CLOCK_H_

 

//Clock.cpp

#include "Clock.h"
#include <iostream>

using namespace std;

void Clock::Display()
{
    cout << hour_ << ":" << minute_ << ":" << second_ << endl;

}
void Clock::Init(int hour,int minute, int second)
{
    hour_ = hour;
    minute_ = minute;
    second_ = second; 
}

//test.cpp

#include <iostream>
#include <cstdio>
#include "Clock.h"

using namespace std;

int main(void)
{
    Clock c;
    c.Init(10,10,10);
    c.Display();
    c.second_ += 1;
    c.Display();

    return 0;
}
/*
输出结果:
10:10:10
10:10:11
*/

 

2、公有、私有、保护成员

¥在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。

¥在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。

¥在关键字protected后面声明,与private类似,其差别表现在继承与派生时对派生类的影响不同。

3、数据抽象和封装

¥数据抽象是一种依赖于接口和实现分离的编程(和设计)技术,类设计者必须关心类是如何实现的,但使用该类的程序员不必了解这些细节。使用者只要抽象地考虑该类型做什么,而不必具体地考虑该类如何工作。

¥封装是一项将低层次地元素组合起来形成新的、高层次的实体的技术,函数是封装的一种形式,函数所执行的细节行为被封装在函数这个更大的实体中,。被封装的元素隐藏了他们的实现细节------可以调用函数,但是不能直接访问函数所执行的语句。同样地,类也是一种封装地实体:它代表若干成员地聚集,设计良好地类隐藏了类实现地细节。

标签:10,封装,函数,Clock,对象,C++,面向对象,int,include
来源: https://www.cnblogs.com/fxdd/p/16197519.html