在哔哩哔哩学习的这个老师的C++面向对象高级语言程序设计教程(118集全)讲的真的很不错

实战一:

在这里插入图片描述

情况一:将所有代码写到一个文件main.cpp中
#include<iostream>
//不知道包含strcpy的头文件名称是什么,问ai可知
#include<cstring>
using namespace std;
class Person {
private:int age;
public:char name[32];void set(int a, char b[32]);int get_age(void);//char get_name(void);这个函数应该将返回值改为字符指针型,便于返回整个字符串,修改如下char* get_name(void);
};
void Person::set(int a, char b[32]) {if (a < 100 && a>0) {age = a;}else cout << "请输入正确的age" << endl;strcpy_s(name, b);
}
int Person::get_age(void) {return age;
}
char* Person::get_name(void) {return name;//应该直接返回name,而不是返回name[32],这是返回的第三十三个元素
}
int main() {Person p;int p_age;char p_name[32];cout << "请输入您的年龄" << endl;cin >> p_age;//要先将用户输入的值存入一个变量中cin.ignore();//忽略输入缓冲区中的换行符,避免影响后续的 getlinecout << "请输入您的姓名" << endl;cin.getline(p_name, 32);//是cin.getline,不要记错了,读取整行输入(包括空格)p.set(p_age, p_name);cout << "p的年龄是:" << p.get_age() << endl;//函数调用一定要加要加小括号,有没有参数都要加cout << "p的姓名是:" << p.get_name() << endl;
}
情况二:分文件写
在Person.h中
#pragma once//类的头文件:一般定义成员数据,声明成员函数
class Person
{
private:int m_age;char m_name[32];
public://初始化m_name和m_agevoid init( const char* name, int age);//设置namevoid setname( const char *name);//获取namechar* getname(void);//设置agevoid setage(int age);//获取ageint getage(void);//显示m_name和m_agevoid showPerson(void);
};
在person.cpp中
#include "Person.h"
#include<string.h>
#include<iostream>
using namespace std;//定义类的成员函数
void Person::init(const char* name, int age)
{strcpy_s(m_name, name);if (age >= 0 && age <= 100) {m_age = age;}else {cout << "年龄输入非法" << endl;}
}void Person::setname( const char* name)
{strcpy_s(m_name, name);
}char* Person::getname(void)
{return m_name;
}void Person::setage(int age)
{m_age = age;
}int Person::getage(void)
{return m_age;
}void Person::showPerson(void)
{cout << "姓名:" << m_name << ", 年龄:" << m_age << endl;
}
在main.cpp中
#include<iostream>
#include"Person.h"
using namespace std;int main() {Person ob;ob.init("lucy",18);ob.showPerson();ob.setage(60);ob.getage();ob.setname("Bob");ob.getname();ob.showPerson();return 0;
}
  • 分清楚了Person.h和person.cpp和main.cpp分别是干嘛的
  • 认识了初始化函数怎么写
  • cin.ignore()
  • cin.getline()
  • 大体感受了面向对象编程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/898914.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/898914.shtml
英文地址,请注明出处:http://en.pswp.cn/news/898914.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jetson Orin NX使用 Ollama 本地部署 deepseek

本文记录在 jetson orin nx 上使用 ollama 部署 deepseek 的过程 有用的网站及工具 NVIDIA Jetson AI LabOllama官网Jtop 工具 > 用以查看jetson GPU/CPU/Memory 等占用情况的工具&#xff0c;安装过程如下&#xff1a; sudo apt-get install python3-pip sudo -H pip3 in…

目标检测20年(三)

对这篇论文感兴趣的小伙伴可以订阅笔者《目标检测》专栏&#xff0c;关注笔者对该文献的阅读和理解。 前两篇解读链接&#xff1a; 目标检测20年&#xff08;一&#xff09;-CSDN博客 目标检测20年&#xff08;二&#xff09;-CSDN博客 目录 四、 检测器的加速发展 4.1 特…

智能手持终端PDA在设备巡检管理中的应用

在工业制造、能源电力、轨道交通等领域&#xff0c;设备巡检是保障生产安全与连续性的核心环节。传统巡检模式存在效率低、易出错、数据滞后等痛点。上海岳冉智能设备巡检手持终端PDA&#xff0c;以智能化、数字化、高可靠为核心设计理念&#xff0c;集RFID、条码扫描、AI图像识…

AI知识补全(二):提示工程(Prompting)是什么?

名人说&#xff1a;人生如逆旅&#xff0c;我亦是行人。 ——苏轼《临江仙送钱穆父》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;AI知识补全&#xff08;一&#xff09;&#xff1a;tokens是什么…

C++友元:跨墙访问的三种姿势

目录 友元 友元之普通函数形式 友元之成员函数形式 友元类 友元的特点 友元 什么叫友元&#xff1f; 一般来说&#xff0c;类的私有成员只能在类的内部访问&#xff0c;类之外是不能访问它们的。但如果将其他类/函数设置为类的友元&#xff0c;那么友元类/函数就可以在前…

位运算[找出唯一成对的数]

题目来源&#xff1a;蓝桥云课 不用辅助储存空间 import java.util.Random;public class T_01 {public class Util {public static void swap(int[] arr, int i, int j) {int temp arr[i];arr[i] arr[j];arr[j] temp;}public static void print(int[] arr) {for (int i 0; …

简记_FPGA 硬件最小系统设计

一、FPGA板级设计的五要素 1.1、电源电路 核心电压&#xff1a;一般为固定值 IO电压&#xff1a;FPGA的IO分为多个bank&#xff0c;同一个bank的不同IO引脚电压相同&#xff0c;不同bank的电压可以不同 辅助电压&#xff1a;除了核心电压和IO电压&#xff0c;FPGA工作所需的…

7.2 控件和组件

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的 C#工具箱位于编辑窗口的左侧&#xff0c;它默认内置了大量的控件和组件。控件一般派生于System.Windows.Forms.Control类&#xff0c;显…

Spring Boot中接口数据字段为 Long 类型时,前端number精度丢失问题解决方案

Spring Boot中接口数据字段为 Long 类型时&#xff0c;前端number精度丢失问题解决方案 在Spring Boot中&#xff0c;当接口数据字段为 Long 类型时&#xff0c;返回页面的JSON中该字段通常会被序列化为数字类型。 例如&#xff0c;一个Java对象中有一个 Long 类型的属性 id …

OpenCV第2课 OpenCV的组成结构与图片/视频的加载及展示

1.OpenCV 的组成结构 2.OpenCV 的具体模块 3. 图像的读取 4. 视频的读取 1.OpenCV 的组成结构 OpenCV 是由很多模块组成的,这些模块可以分成很多层: 最底层是基于硬件加速层(HAL)的各种硬件优化。再上一层是opencv_contrib 模块所包含的OpenCV 由其他开发人员所贡献的代…

安装配置Tesseract-OCR

1,下载对应的可执行文件 在Tesseract OCR下载地址Index of /tesseract下载合适的版本安装包,如下: 点击安装包进行安装: 语言选择英文: 如果需要识别中文,则可以在安装过程中勾选下载中文语言包和脚本(也可以按需选择繁体):

关于墙面涂鸦的视觉检测与喷涂修复装置研究(大纲)

公共场所墙面涂鸦视觉检测与精准喷涂修复装置研究 融合视觉识别与自动化喷涂的墙面维护解决方案 第一章 绪论 1.1 研究背景与意义 城市形象与秩序维护&#xff1a; 涂鸦对公共环境的影响&#xff08;破坏美观、传递不良信息&#xff09;清除涂鸦的重要性&#xff08;恢复原貌…

图论 | 98. 所有可达路径

98. 所有可达路径 题目链接&#xff1a; 98. 所有可达路径 思路 先创建邻接矩阵&#xff0c;再深搜写代码是需要注意的是acm格式&#xff0c;输入的格式要转化为int&#xff0c;输出要转化为str&#xff0c;用map&#xff08;&#xff09;实现。 dfs def dfs(grid,node,n,…

MCP+Hologres+LLM 搭建数据分析 Agent

LLM大模型在数据分析领域的挑战 在数据分析领域&#xff0c;大模型&#xff08;LLM&#xff09;具备强大语言理解能力&#xff0c;NL2SQL等各类智能化工具也极大提升了数据分析人员的分析效率&#xff0c;但仍旧面临不少挑战&#xff1a; 传统 LLM 缺乏实时数据接入能力&…

Categorical分布(分类分布):深度学习中的离散建模利器

Categorical分布&#xff1a;深度学习中的离散建模利器 引言 对于深度学习研究者来说&#xff0c;概率分布是模型设计和优化的基石。在许多生成模型中&#xff0c;如变分自编码器&#xff08;VAE&#xff09;及其变种VQ-VAE&#xff08;Vector Quantized Variational Autoenc…

Langchain 提示词(Prompt)

基本用法 1. 基本概念 提示词模板 是一个字符串模板&#xff0c;其中包含一些占位符&#xff08;通常是 {variable} 形式的&#xff09;&#xff0c;这些占位符可以在运行时被实际值替换。LangChain 提供了多种类型的提示词模板&#xff0c;以适应不同的使用场景。 2. 主要类…

centos7.9镜像源及Python引入ssl问题处理

一、镜像源修改 1. 备份原有的镜像源配置文件 在修改之前,先备份现有的 CentOS-Base.repo 文件: sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2. 编辑镜像源配置文件 使用文本编辑器(如 nano 或 vi)打开 /etc/yum.repos.d/Ce…

Java高频面试之集合-17

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;JDK 8 对 HashMap 主要做了哪些优化呢&#xff1f;为什么要这么做&#xff1f; JDK 8 对 HashMap 的主要优化及原因 JDK…

计算机二级:函数基础题

函数基础题 第一题 rinput("请输入半径&#xff1a;") c3.1415926*r*2 print("{:.0f}".format(c))输出&#xff1a; Type Error第二题 a7 b2 print(a%2)输出 1第三题 ab4 def my_ab(ab,xy):abpow(ab,xy)print(ab,end"\n") my_ab(ab,2)prin…

C# 属性(Property)‌详解

在 C# 中&#xff0c;‌属性&#xff08;Property&#xff09;‌ 是类或结构体中的成员&#xff0c;用于封装对私有字段&#xff08;称为 ‌backing field‌&#xff09;的访问&#xff0c;提供更灵活和安全的数据操作方式。属性通过 get 和 set 访问器控制对数据的读写&#x…