• 面向对象编程(一)【类与对象的定义】学习笔记


    ·类与对象的关系:(例题在文末)

    在c++中,对象的类型称为类,类代表了某一批对象的共和体特征;

    类是对象的抽象,对象是类的实例

    如何声明类类型:

    (和结构体类型的声明比较类似)对比:

    自行点开

    struck Student{
        int num;
        char name[20];
        char sex;
       };
    定义结构体
    class Student{
        int num;
        char name[20];
       char sex;        //数据成员
    
       void display(){//成员函数
          cout<<"学号:"<<num<<'
    ';
          cout<<姓名:"<<mane<<'
    ';
         cout<<性别:"<<sex<<'
    ';
        }
    };
      Student student1,student2;
                    
    声明类(只包括数据不包括操作)

     这样的类定义的弊端,是在外界不能调用display函数看起来很安全BUT没啥用......

    SO:

    应该是这样的(书上正解——);

    class Student{
     private:
         int num;
         char name[20];
         char sex;
     public:
        void display(){   //声明以下部分为公有 
            cout<<num<<'
    '<<name<<'
    '<<sex;
        }
    
    };
    Student stu1,stu2;
    定义

    除了private public  还有一个叫protected(这个是受保护的,不能被类外访问)

    综上  类申明的一般形式就是

    class 类名{

    private:  

       私有的数据和成员函数;

    public:

        共有的数据和成员函数;

    };

    定义对象的方法

    一,先声明类类型,然后再定义对象;

           LIKE前面的

              Student student1,student2;    //Student 是已经申明的类类型;

                (书上说 也可以:

             class Student student1,student2;    //我好懒不想多写.......这种方法是从C语言继承下来的......我还是愿意少打几个字母

    二,在声明类的同时声明变量

            //我好懒好懒

        就和结构体一样

    class Student{
     private:
         int num;
         char name[20];
         char sex;
     public:
        void display(){
            cout<<num<<'
    '<<name<<'
    '<<sex;
        }
    
    }stu1,stu2;

    三,不出现类名直接定义对象

         不提倡所以我就不写了

    在类外定义成员函数

       void Student::display(){      //这个双冒号不能丢,还有类名一定要注意;

    }
       ::叫作用域限定符或作用域运算符

    class Student{
     private:
         int num;
         char name[20];
         char sex;
     public:
        void display();
    }stu1,stu2;
       void Student::display(){
           cout<<num<<" "<<name<<" "<<sex<<'
    ';
       }
    完整代码如下

    点击下面文字查看例题 

     复数加法

    设计并测试Circle类

    设计Person类

    设计Dog类

     

    设计并测试Trapezium类

  • 相关阅读:
    面向对象编程的三大特性之一:继承与派生
    面向对象编程
    计算器作业(摘要算法)
    模块&包
    文件的查询、修改实例+tag的用法++函数+程序的解耦
    函数闭包与装饰器
    Python开发【第五篇】:Python基础之杂货铺 day14 06
    Python开发【第四篇】:Python基础之函数 day14--08
    文件操作
    第七篇 python基础之函数,递归,内置函数lhf -blogs day14-8
  • 原文地址:https://www.cnblogs.com/ahijing/p/12597779.html
Copyright © 2020-2023  润新知