C++面向对象 类的定义

时间:2022-08-29 19:48:38

C语言是面向过程的语言。它的思想就是将一个程序分成若干个过程,然后写出每个过程的算法。但是重用性比较差。

C++面向对象的语言:将自然界的事物看成不同的实体,也就是对象。每个对象都有自己的行为和状态。


面向对象程序语言的主要特征:

1.抽象 将某些对象根据他们相同的特征进一步组成一个类。

2.封装 将每个数据封装在各自的类中,又设置了各种访问权限,别的类可以在被允许的情况下访问该类中的数据,如果不被允许,则无法访问该数据,从而避免了非法操作和出错的可能。

3.继承  继承父类的所有属性 

4.多态 不同的对象调用相同的函数名称,却可以导致不同的行为或者结果的现象称为多态。


类、对象、成员

类由若干个变量和相关的函数组成

对象拥有这些变量和函数

成员:数据成员和成员函数


类中的成员默认是私有的,私有成员不能被对象直接访问,只能通过在类中设置的接口函数来访问。

一般情况下我们将类的数据成员设置成私有,而使用类的公有的函数来访问它们。

函数的申明和实现在一起的情况:

//  Created by amesty on 16/5/11.

//  Copyright © 2016 travelrely. All rights reserved.

//


#include <stdio.h>

#include <iostream>

using std::cout;

class Human

{

   // public :

   //类中的成员默认是私有的,私有成员不能被对象直接访问,只能通过在类中设置的接口函数来访问。

   private:

    int  weight;

    

    public:

      //void set(int w){weight=w;}

    void set(int w)

    {

        if(w>0&&w<100)

            weight = w;

        else

        {

            cout<<"请将set函数的参数设置为一个大于0而小于100的数字,否则默认设置为0\n";

            weight=0;

        }

    }

    int get(){returnweight;}

};

int main()

{

    Human Tom;

   // Tom.weight=5;

    Tom.set(5);

    

    cout<<"汤姆的体重为:"<<Tom.get()<<"\n";

    Human Mike;

    Mike.set(6);

    cout<<"迈克的体重为:"<<Mike.get()<<"\n";

    return 0;

}


函数的声明和实现分开的情况


#include <stdio.h>

#include <iostream>

using std::cout;

class Human

{

   // public :

   //类中的成员默认是私有的,私有成员不能被对象直接访问,只能通过在类中设置的接口函数来访问。

   private:

    int  weight;

    

    public:

    //void set(int w){weight=w;}

    void set(int w);

    //函数的声明部分仅仅是说明该函数的参数类型及返回值类型

    int get(){returnweight;}

};

int main()

{

    Human Tom;

   // Tom.weight=5;

    Tom.set(5);

    

    cout<<"汤姆的体重为:"<<Tom.get()<<"\n";

    Human Mike;

    Mike.set(6);

    cout<<"迈克的体重为:"<<Mike.get()<<"\n";

    return 0;

}


void Human::set(int w)

{

    if(w>0&&w<100)

        weight = w;

    else

    {

        cout<<"请将set函数的参数设置为一个大于0而小于100的数字,否则默认设置为0\n";

        weight=0;

    }

}