C++中经常有set和get函数,那么他们有什么作用呢

2023-11-20

C++中经常有set和get函数

set和get函数的作用:
由于成员变量我们一般设置为私有,在类外部不能直接访问,所以我们需要设计公有的set()函数和get()函数来访问它;

set()函数是指修改私有成员变量的值的那类函数;
get()函数是指输出,打印,读取私有成员变量的值的那类函数;
所以一般set()函数和get()函数是对应的;

这体现了面向对象编程中的封装性:这里set()函数和get()函数就相当于是对外界提供的一个接口,外界只有通过这种接口才能访问到内部的值。

附上例代码:
#include
using namespace std;

class Point
{
public:
    Point()//构造函数
    {
        x=0;
        y=0;
    }
    void setX(float _x){x=_x;}	//p1.setX(1);
    void setY(float _y){y=_y;}
	float getX(){return x;}     //cout<<p1.getX()<<endl;
    float getY(){return y;}
	void printPoint(){cout<<"("<<x<<","<<y<<")"<<endl;}
private:
    float x;
    float y;
};

int main()
{
    Point p1;//声明一个Point的对象p1
    p1.printPoint();//(0,0)

    //p1.x=1;错误!
	//类外不能直接修改类的私有成员
    p1.setX(1);
	//只能通过类中提供的公有的成员函数来修改我们的私有成员值

	//cout<<p1.x<<endl;错误!
	//类外不能直接访问类的私有成员
	cout<<p1.getX()<<endl;
	//只能通过类中提供的公有的成员函数来访问我们的私有成员值
    p1.printPoint();
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++中经常有set和get函数,那么他们有什么作用呢 的相关文章

随机推荐

  • CPU体系架构-ARM/MIPS/X86

    转自 http nieyong github io wiki cpu CPU体系架构 ARM MIPS X86 第一部分 从寄存器 寻址方式 汇编指令等方面总结了ARM MIPS X86的异同 CPU体系架构 RISC和CISC CPU体系
  • efi分区隐藏_win10如何隐藏efi分区

    windows10系统升级最新1703版本后发现制作pe系统的u盘插上电脑后会同时显示可见分区和efi分区 以前的efi隐藏手段统统失效了 目前没找到完美的方法 本文的方法是在自己电脑隐藏efi分区 换别的1703版本win10电脑无效 解
  • 利用OpenCV实现人眼的检测与跟踪

    图像处理开发需求 图像处理接私活挣零花钱 请加微信 QQ 2487872782 图像处理开发资料 图像处理技术交流请加QQ群 群号 271891601 本篇博文的基础是 利用OpenCV的级联分类器类CascadeClassifier和Ha
  • 【电机学】直流电机

    直流电机 什么是直流电机 直流电机的工作原理 直流发电机的工作原理 直流电动机的工作原理 可逆性原理 直流电机的主要结构部件 直流电机的电枢绕组 基本特点 并联支路对数 电刷的放置 一些概念 直流电机的磁场 直流电机的空载磁场 电枢电流Ia
  • Win10 自带【屏幕录制】功能(win + G)----(附带:录屏时没有声音,声音不清楚 问题解决;---提取视频中的音频)

    目录 前言 各种工具的快捷键 以及使用 1 Win V 笔记 2 Win G 进入游戏模式 即 运行Xbox Game Bar 3 Win Tab 虚拟桌面 4 Win Shift S 截屏工具 录制视频时 声音超级不清楚 问题解决 1 w
  • SpringBoot:多数据源配置——注解+AOP

    maven依赖
  • Redis系列之发布订阅

    前言 通过Redis可以实现简单的消息 Redis为我们提供了一个发布订阅的功能 下面我们来认识下Redis的发布订阅 发布订阅模型 发布者将消息发布发布到channel频道上 所有订阅了channel频道的客户端都会接收到消息 如下图 相
  • 把思科端口速率改为不协商_端口汇聚—TRUNK技术介绍

    一 概述 随着网络技术的不断发展和应用 网络的速度越来越快 网络的应用也越来越复杂 因此在很多实际应用中网络速度就成为各种网络应用的瓶颈所在 通过升级来提高网络速度是解决问题的一个有效的手段 比如从10M以太网到100M以太网以至于1000
  • Tic-Tac-Toe(三子连)(总结规律)

    Time Limit 1000 mSec Memory Limit 262144 KB Problem Description Kim likes to play Tic Tac Toe Given a current state and
  • 基于灰度的模板匹配(带旋转角度)

    原图 选择模板 旋转180度进行识别 继续旋转 依然可以识别 代码 Searching the best matching of a template in an image with rotation dev close window r
  • STM32使用各传感器demo

    先挖个坑 待整理 语音播报部分 1 VS1053语音模块 2 JQ8400语音模块 智能小车部分 3 寻迹模块 4 避障模块 5 舵机驱动 6 超声波模块 7 L298N模块 8 蓝牙JD31模块 兼容HC 05 9 红外模块 10 MPU
  • 使用golang+antlr4构建一个自己的语言解析器(一)

    Antlr4 简介 ANTLR 全名 ANother Tool for Language Recognition 是基于LL 算法实现的语法解析器生成器 parser generator 用Java语言编写 使用自上而下 top down
  • 如何查看Tomcat版本信息

    一 简单暴力的 1 打开tomcat路径下的lib文件夹 找到catalina jar 用解压工具打开 找到 MANIFEST MF 打开就可以看到了 二 进入tomcat 安装路径 进入bin文件夹 对于version bat点击运行后会
  • STM32野火教程学习

    野火教程学习 全套200集视频教程和1000页PDF教程请到秉火论坛下载 www firebbs cn 野火视频教程优酷观看网址 http i youku com firege 第4章 初识STM32 零死角玩转STM32 F429系列 h
  • LaTeX 命令和代码结构简介

    目录 LaTeX LaTeX LATE X 命令和环境 命令 参数 环境 分组 LaTeX LaTeX
  • 【Linux应用】磁盘IO读写测试工具-FIO详解

    1 FIO简介 FIO是Linux下开源的一款IOPS测试工具 主要用来对磁盘进行压力测试和性能验证 它可以产生许多线程或进程来执行用户特定类型的I O操作 通过编写作业文件 类似于k8s的yaml 或者直接命令去执行测试动作 相当于是一个
  • linux 使用systemctl 启动服务报错: Error: No space left on device

    By default Linux only allocates 8192 watches for inotify which is ridiculously low And when it runs out the error is als
  • uni-app开发微信小程序数据 \n 换行符失效问题

    前言 使用uni app开发微信小程序时 使用text显示字符串 字符串带 n 需要在 n处直接换行 1 本地字符串 可以直接换行显示 2 后台返回字符串 直接换行失效 原因 渲染时 n 直接被当成字符串处理了 根本不识别 效果图 实现 1
  • pikachu靶场 RCE、File Inclusion

    目录 exec ping exec eval File Inclusion local File Inclusion remote exec ping 输入正常的ip地址看到正常回显 测试带管道符 能不能正常执行 发现可以 命令可以接各种命
  • C++中经常有set和get函数,那么他们有什么作用呢

    C 中经常有set和get函数 set和get函数的作用 由于成员变量我们一般设置为私有 在类外部不能直接访问 所以我们需要设计公有的set 函数和get 函数来访问它 set 函数是指修改私有成员变量的值的那类函数 get 函数是指输出