zoukankan      html  css  js  c++  java
  • C++ 类和对象

    C++ 类定义

    打个比方,狗,这个物种就是类,我家的小狗名字叫花花,花花是狗的一种,我们就把花花称作类的对象,花花就是狗这个类数理化出来的对象。

    #include<stdlib.h>
    #include<iostream>
    using namespace std;
    
    class Dog// class:关键字,Dog:类名
    {
        char name[20];
        int age;
        int type;// int:属性,type:数据成员
    
        void speak();// 成员函数,或者说方法
        void run();
    }

    定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。

    类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。例如,我们使用关键字 class 定义 Box 数据类型,如下所示:

    class Box
    {
       public:
          double length;   // 盒子的长度
          double breadth;  // 盒子的宽度
          double height;   // 盒子的高度
    };

    关键字 public 确定了类成员的访问属性。在类对象作用域内,公共成员在类的外部是可访问的。您也可以指定类的成员为 privateprotected,这个我们稍后会进行讲解。

    定义 C++ 对象

    类提供了对象的蓝图,所以基本上,对象是根据类来创建的。声明类的对象,就像声明基本类型的变量一样。下面的语句声明了类 Box 的两个对象:

    Box Box1;          // 声明 Box1,类型为 Box
    Box Box2;          // 声明 Box2,类型为 Box

    对象 Box1 和 Box2 都有它们各自的数据成员。

    访问数据成员

    详细内容:https://www.cnblogs.com/chuijingjing/p/9245445.html

    类的对象的公共数据成员可以使用直接成员访问运算符 (.) 来访问。为了更好地理解这些概念,让我们尝试一下下面的实例:

    #include <iostream>
    #include <stdlib.h>
    using namespace std;
    
    // 实例化一个类的对象 
    
    class Coordinate  // 定义一个类
    {
    public:  // 访问限定符
        int x;
        int y;
        void printX()
        {
            cout << x << endl;
        } 
        void printY()
        {
             cout << y << endl;
        }
    };
    
    int main(void)
    {
        // 栈的方式 
        Coordinate coor; // 定义在栈中的一个对象 
        coor.x = 10;  // 访问数据成员或者成员函数 
        coor.y = 20;
        coor.printX();
        coor.printY();
        
        // 堆的方式
        
        Coordinate *p = new Coordinate();
        if(NULL == p)
        {
            // 申请内存失败
            return 0; 
        } 
        p->x = 100;  // 访问数据成员或者成员函数 
        p->y = 200;
        p->printX();
        p->printY();
        
        delete p; // 释放内存 
        p = NULL;
         
        system("pause");
        return 0;
    }
     

    需要注意的是,私有的成员和受保护的成员不能使用直接成员访问运算符 (.) 来直接访问。我们将在后续的教程中学习如何访问私有成员和受保护的成员。

  • 相关阅读:
    POJ 3114 Tarjan+Dijkstra
    278. First Bad Version
    209. Minimum Size Subarray Sum
    154. Find Minimum in Rotated Sorted Array II
    153. Find Minimum in Rotated Sorted Array
    710. Random Pick with Blacklist
    767. Reorganize String
    524. Longest Word in Dictionary through Deleting
    349. Intersection of Two Arrays
    350. Intersection of Two Arrays II
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/9032887.html
Copyright © 2011-2022 走看看