首页 > 编程语言 >C++函数重载和对象

C++函数重载和对象

时间:2023-04-08 23:02:04浏览次数:43  
标签:set 函数 int age C++ person 重载 void

函数的默认参数
int fun(int a,int b=10,int c=20)
{
return a+b+c;
}
int main()
{
cout<<fun(10)<<endl;//当参数有值时也可以输出正确,如果程序员加了返回值就用程序员加入的值。
}
形参的数据从左到右当中间有参数后面也需要定义一个
函数和声明只能实现一个;
占位参数
void fun(int *a,int )
{
fun(10,20)//这里需要加入参数,因为有占位符
}
函数重载
在同一个作用域下。例如:都在全局函数下
函数的名称相同
函数的参数类型不同,或者个数不同,或者个数不同,顺序不同
void fun1(int&a)
void fun2(const int&a)
int main()
{
int a=10;
fun1(a);//函数会输出fun1,因为a是变量可读可写而fun2加入const只读状态
//fun2(10);这个可以调用fun2,而不调用fun1.
}
类和对象
封装
封装的意义
将属性和行为作为一个整体,体现生活中的事物
将属性和行为加以权限控制
class和struct的区别
class默认权限是共有public
struct默认权限是私有private
成员函数的私有化
优点:可以自己控制读写权限
可以有效的检测数据的有效性
获取类内的private中的值
可读可写
class person
{
public:
void set(int age)//set的函数进行只写的状态
int m_age=age;

int get()//get的函数进行只读的状态
return m_age;
private:
string m_name;
int m_age;
};
int main()
person p;
p.set(20);
cout<<p.get()<<endl;

可读
class person
{
public:
int get()//get的函数进行只读的状态
{
m_age=0;//进行初始化
return m_age;
}
private:
string m_name;
int m_age;
};
int main()
person p;
//p.set(20);
cout<<p.get()<<endl;
可写
class person
{
public:
void set(int age)//set的函数进行只写的状态
int m_age=age;

private:
string m_name;
int m_age;
};
int main()
person p;
p.set(20);
//cout<<p.get()<<endl;输出的就是可以看到的为可读。
当使用全局函数判断两个立方体是否相等时传入两个值,
bool issanme(cube&c1,cube&c2);
成员函数判断两个立方体是否相等时传入一个值
bool isSanm(Cube & c);
份文件编写类
.h头文件只要声明不需要实现
#progma one
#include<iostream>
using namespace std;
class person
{
public:
void set(int age);
{
m_age=age;
}
private:
int m_age;
}
.cpp文件只需要实现,但要加入类的作用域
#include".h的文件名"
void person::set(int age)//在person类作用域下
{
m_age=age;
}

————————————————
版权声明:本文为CSDN博主「BoyBoy!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Yyds12300/article/details/130035998

标签:set,函数,int,age,C++,person,重载,void
From: https://www.cnblogs.com/boyboy/p/17299481.html

相关文章

  • Rust编程语言入门之函数式语言特性:-迭代器和闭包
    函数式语言特性:-迭代器和闭包本章内容闭包(closures)迭代器(iterators)优化改善12章的实例项目讨论闭包和迭代器的运行时性能一、闭包(1)-使用闭包创建抽象行为什么是闭包(closure)闭包:可以捕获其所在环境的匿名函数。闭包:是匿名函数保存为变量、作为参数可在一个地方......
  • 第十四届蓝桥杯大赛软件赛省赛C/C++大学生B组
    第十四届蓝桥杯大赛软件赛省赛C/C++大学生B组试题A:日期统计A题直接枚举即可,枚举日期,暴力匹配#include<iostream>#include<algorithm>#include<vector>usingnamespacestd;boolcheck(stringt){ if(t.substr(0,4)!="2023")returnfalse; stringmon=t.substr(4,2......
  • C++多核多线程同步实现
    使用MakefileC++11工程模拟dsp的多核同步逻辑,使用多线程模拟多核,多个线程通过C++11的条件变量实现同步。当某一线程执行到同步函数syn_func时,判断是否其他线程执行到此处了,若有其他线程没有执行到此处,本线程就应阻塞。当最后一个线程执行到同步函数时,通知所有线程解除阻塞,实现......
  • 关于gcc设置入口函数的讨论
    关于gcc设置入口函数的讨论一般的程序入口函数是_start(不是main,参考【2】)。如果我们想在main之前做点啥工作,或者希望链接一个项目的main.o对象,就需要另外指定入口函数。虽然gcc提供了指定入口函数的参数,但我发现往往不是我们想要的。gcc的指定入口函数参数gcc提供了两个命......
  • Qt-FFmpeg开发-回调函数读取数据(8)
    音视频/FFmpeg#QtQt-FFmpeg开发-使libavformat解复用器通过自定义AVIOContext读取回调访问媒体内容目录音视频/FFmpeg#QtQt-FFmpeg开发-使libavformat解复用器通过自定义AVIOContext读取回调访问媒体内容1、概述2、实现效果3、主要代码4、完整源代码更多精彩内容......
  • 【MySQL】MySQL基础05 — SQL学习 — DQL — 常见函数 — 分组函数(转载请注明出处)
    SQL学习—DQL—常见函数—分组函数4.常见函数(附加)/*概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名。好处:1.隐藏了实现细节2.提高代码的重用性调用语法:select函数名(实参列表)【from表】;特点: 1.叫什么(函数名) 2.干什么(函数功能)分类: 1.单......
  • C++,OpenCV图像像素运算(6)
    参与算术运算图像的数据类型、通道数目、大小必须相同算术运算加法:addvoidadd(InputArraysrc1,InputArraysrc2,OutputArraydst,InputArraymask=noArray(),intdtype=-1);/******************************************************************** src1: 输入图1* ......
  • 在Vue中使用键盘事件,回调函数被执行两次
    暂时先不考虑v-for的key,查看下面的代码<template><div><[email protected]="addTask"><span>请输入待办事项:</span><inputtype="text"placeholder="请输入..."v-model="text"@keyup.enter=&qu......
  • Jmeter参数化的方式-用户参数、用户自定义变量、CSV文件设置、函数助手
    一、jmeter的主要功能参数化:事先准备好数据,脚本执行时从准备好的数据中取值;可将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取值范围和规则;在脚本运行时,根据需要选取不同的参数值作为输入,该方式成为数据驱动测试(DataDrivernTest,DDT),参数的取值范围称为数据池(Data......
  • 『0008』- Solidity中public、internal、private在状态变量和函数中的使用以及Solidit
    作者:黎跃春,在上一小节中我们在函数参数中使用storage这个关键字时,当前的函数必须是internal或者private类型。在本小节中,我(微信:liyc1215)将重点为大家介绍属性和函数的使用权限。状态变量、函数的权限一、public备注:为了演示方便,我直接通过https://remix.ethereum.org/来进行演示。p......