C++ 类和对象基础篇

C++ 类和对象基础篇

什么是类和对象

在C++中,类是一种自定义的数据类型,也是一种数据结构。它可以包含变量和函数,这些变量和函数被称为类的成员。对象是类的一个实例,是具有类定义的属性和操作的变量。

如何定义类

在C++中,通过关键字class来定义一个类。通常格式如下:

class ClassName{
    private:  //私有成员
        int member1;
        string member2;
    public:  //公有成员
        void func1();
        double func2(int para);
};

其中,private关键字用来表示私有成员,只有类内部可以访问;public关键字用来表示公有成员,可以在类内部和外部访问。

如何创建对象

在C++中,通过new关键字来创建一个对象。通常格式如下:

ClassName* objectName = new ClassName();

也可以直接创建一个对象,格式如下:

ClassName objectName;

如何访问成员

在C++中,可以通过“.”来访问对象的成员。例如,访问对象的成员函数,格式如下:

objectName.func1();

访问对象的成员变量,格式如下:

objectName.member1;

示例

下面通过两个示例来说明类和对象的基本使用。

示例1:点坐标类

#include<iostream>
using namespace std;

class Point{
private:
    int x;
    int y;
public:
    void setPoint(int a, int b){
        x = a;
        y = b;
    }
    int getx(){
        return x;
    }
    int gety(){
        return y;
    }
    void print(){
        cout<<"("<<x<<","<<y<<")"<<endl;
    }
};

int main(){
    Point p;
    p.setPoint(3,4);
    p.print();
    return 0;
}

在示例中,我们定义了一个Point类,它包含私有成员xy,分别表示点的横坐标和纵坐标。还定义了公有成员setPoint()getx()gety()print(),分别用来设置坐标、获取坐标和打印坐标。在main()函数中,创建了一个Point对象p,并通过setPoint()设置了坐标,最后通过print()函数打印了坐标。

示例2:学生类

#include<iostream>
#include<string>
using namespace std;

class Student{
private:
    string name;
    int age;
    int score;
public:
    void setName(string n){
        name = n;
    }
    void setAge(int a){
        age = a;
    }
    void setScore(int s){
        score = s;
    }
    void print(){
        cout<<"Name:"<<name<<endl;
        cout<<"Age:"<<age<<endl;
        cout<<"Score:"<<score<<endl;
    }
};

int main(){
    Student stu;
    stu.setName("Tom");
    stu.setAge(18);
    stu.setScore(89);
    stu.print();
    return 0;
}

在示例中,我们定义了一个Student类,它包含私有成员nameagescore,分别表示学生的姓名、年龄和分数。还定义了公有成员setName()setAge()setScore()print(),分别用来设置和获取学生的信息和打印学生的信息。在main()函数中,创建了一个Student对象stu,并通过setName()setAge()setScore()分别设置了学生的姓名、年龄和分数,最后通过print()函数打印了学生的信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ 类和对象基础篇 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • mybatis 返回Map类型key默认为大写问题

    MyBatis 返回 Map 类型 key 默认为大写问题攻略 在 MyBatis 中,当使用 select 语句返回 Map 类型的结果时,默认情况下,Map 的键(key)会被转换为大写形式。这可能会导致一些问题,特别是当数据库中的列名是小写或者混合大小写时。下面是解决这个问题的完整攻略。 解决方法 方法一:使用别名 在 SQL 查询语句中,可以使用别名…

    other 2023年8月19日
    00
  • 魔兽世界6.0奶骑装备属性优先级 装备属性选择攻略

    魔兽世界6.0奶骑装备属性优先级 装备属性选择攻略 1. 引言 这篇攻略将详细讲解魔兽世界6.0版本中奶骑(保护战士)的装备属性优先级以及装备属性的选择策略。 2. 奶骑装备属性优先级 在选择装备时,奶骑应该优先考虑以下属性: 2.1 耐力(Stamina) 耐力是奶骑最重要的属性之一,它提供额外的生命值,使奶骑更加耐打。 2.2 倒刺伤害(Versatil…

    other 2023年6月28日
    00
  • 魔兽世界7.3.5增强萨怎么堆属性 wow7.35增强萨配装属性优先级攻略

    魔兽世界7.3.5增强萨怎么堆属性攻略 1. 增强萨属性优先级概述 在魔兽世界7.3.5版本中,增强萨(增强萨满)作为一个近战输出职业,需要合理地堆叠属性以提高输出能力。以下是增强萨属性的优先级列表: 爆击:提高技能的爆击几率和伤害。 急速:降低技能的冷却时间和施法时间。 精通:增加技能的伤害输出,并提供相应的额外效果。 全能:提供全方位的属性加成,包括攻击…

    other 2023年6月28日
    00
  • 一文带你全面掌握Go语言中的正则表达式

    一文带你全面掌握Go语言中的正则表达式攻略 正则表达式是一种强大的文本匹配工具,Go语言提供了内置的regexp包来支持正则表达式操作。本攻略将详细介绍Go语言中正则表达式的使用方法,并提供两个示例说明。 正则表达式基础 正则表达式由一系列字符和特殊字符组成,用于匹配和操作文本。下面是一些常用的正则表达式特殊字符: .:匹配任意单个字符。 *:匹配前一个字符…

    other 2023年8月19日
    00
  • Ubuntu 12.04解决重启后resolv.conf清空的问题

    Ubuntu 12.04是一款常用的操作系统,但有时会出现resolv.conf清空的问题,导致网络无法正常使用。本文将详细介绍如何解决这一问题。 问题的原因 在Ubuntu 12.04中,resolv.conf文件由NetworkManager负责管理,当系统重启或者网络状态发生变化时,resolv.conf文件会被重写,导致配置信息被清空。因此,需要对N…

    other 2023年6月27日
    00
  • ThinkPHP连接数据库及主从数据库的设置教程

    当我们使用ThinkPHP开发web应用时,连接数据库是必不可少的一步。下面将详细介绍如何在ThinkPHP中连接数据库,以及如何设置主从数据库。 连接数据库 ThinkPHP采用了PDO和Mysqli两种方式来连接数据库,以下分别介绍。 使用PDO连接数据库 步骤: 在config目录下的database.php文件中设置数据库参数: php ‘type’…

    other 2023年6月27日
    00
  • Android 静默方式实现批量安装卸载应用程序的深入分析

    Android 静默方式实现批量安装卸载应用程序的深入分析 在一些场景下,我们需要批量安装或卸载 Android 应用程序。对于大规模测试和定制化设备来说,静默方式实现这一过程可以提高效率。在本文中,我们将深入分析如何实现 Android 静默方式的批量安装和卸载应用程序。 静默方式简介 静默方式是指在不需要用户进行交互的情况下执行某些操作的方式。在 And…

    other 2023年6月25日
    00
  • Android 如何修改APK的默认名称

    Android 如何修改APK的默认名称 在Android开发中,生成的APK文件默认会使用应用的包名作为文件名。但是,您可以通过修改配置来自定义APK的默认名称。以下是完整的攻略: 步骤1:修改build.gradle文件 在您的Android项目中,找到build.gradle文件。该文件位于项目的根目录下的app文件夹中。在build.gradle文件…

    other 2023年10月13日
    00
合作推广
合作推广
分享本页
返回顶部