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;
    }
     

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

  • 相关阅读:
    联想yoga pro 13 使用Hyper-v蓝屏错误PAGE_FAULT_IN_NONPAGED-AREA的解决办法
    部署 Halo 博客系统
    GiuHub高级搜索关键字
    layer提示框弹出异常抖动,而且不显示
    bootstrap同一页面上多个模态框
    border-radius
    git查看本机ssh公钥
    简单的git连接远程仓库小记
    hexo搭建完成后输入hexo s 没有生成Html静态文件
    application/xml and text/xml的区别
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/9032887.html
Copyright © 2011-2022 走看看