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

·类与对象的关系:

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

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

如何声明类类型:

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

struck Student{
    int num;
    char name[20];
    char sex;
   };
定义结构体
class Student{
    int num;
    char name[20];
   char sex;        //数据成员

   void display(){//成员函数
      cout<<"学号:"<<num<<'\n';
      cout<<姓名:"<<mane<<'\n';
     cout<<性别:"<<sex<<'\n';
    }
};
  Student student1,student2;
                
声明类(只包括数据不包括操作)

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

SO:

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

class Student{
 private:
     int num;
     char name[20];
     char sex;
 public:
    void display(){   //声明以下部分为公有 
        cout<<num<<'\n'<<name<<'\n'<<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<<'\n'<<name<<'\n'<<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<<'\n';
   }
完整代码如下

猜你喜欢

转载自www.cnblogs.com/ahijing/p/12597779.html
今日推荐