C++类与对象的第一个简单的实战练习-3.24笔记

embedded/2025/4/1 7:53:09/

在哔哩哔哩学习的这个老师的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.ppmy.cn/embedded/176673.html

相关文章

智慧路灯机器人是否支持远程监控和管理?

哇哦&#xff01;家人们&#xff0c;叁仟智慧路灯机器人堪称科技领域熠熠生辉的超级巨星&#xff0c;在远程监控与管理方面拥有令人惊叹的卓越表现&#xff01;它全力支持极为便捷的远程监控和管理功能&#xff0c;无论你身处繁华都市的写字楼&#xff0c;还是远在宁静乡村的田…

SpringMVC 配置详解

SpringMVC 是 Spring 框架中用于构建 Web 应用程序的模块&#xff0c;它基于 MVC&#xff08;Model-View-Controller&#xff09;设计模式&#xff0c;能够将业务逻辑、数据和显示分离&#xff0c;从而提高代码的可维护性和可扩展性。本文将详细介绍 SpringMVC 的配置步骤和相关…

基础算法02——冒泡排序(Bubble Sort)

冒泡排序&#xff08;Bubble Sort&#xff09; 冒泡排序&#xff1a;是一种简单的排序算法&#xff0c;其基本思想是通过重复遍历要排序的列表&#xff0c;比较相邻的元素&#xff0c;并在必要时&#xff08;即前面的数比后面的数大的时候&#xff09;交换它们的位置&#xff…

tcpdump-快速查询版-常用后缀

文章目录 1. 安装Tcpdump2. Tcpdump命令语法3. 捕获特定接口的数据包 -i4. 预设捕获数据包数量 -c5. 获取详细输出 -v6. 以ASCII格式打印捕获的数据 -A7. 捕获特定源IP的数据包 src8. 捕获发往特定目标IP的数据包 dst9. 根据端口号过滤 port10. 根据协议过滤 proto11. 根据主机…

两个常用的用于读写和操作DXF文件C#库:netDxf 和 DXF.NET

netDxf 和 DXF.NET 是两个常用的C#库&#xff0c;用于读取、写入和操作DXF文件。以下是它们的详细介绍和用法示例。 1. netDxf 简介 netDxf 是一个开源的DXF文件读写库&#xff0c;支持AutoCAD DXF格式的读取和写入。它支持大多数DXF实体和对象&#xff0c;并且易于使用。 Gi…

涨薪技术|Docker容器数据管理

在生产环境中使用Docker时&#xff0c;经常需要对数据进行持久化&#xff0c;这就有点像Redis里面的持久性一样的&#xff0c;或者需要在多个容器之间在进行数据共享&#xff0c;这就是Docker中我们说的数据管理操作。 容器中管理数据主要有两种方式&#xff1a; 数据卷(Data …

RabbitMQ的高级特性介绍(二)

发送方确认 当消息的⽣产者将消息发送出去之后&#xff0c;消息到底有没有正确地到达服务器呢? 如果在消息到 达服务器之前已经丢失(比如RabbitMQ重启, 那么RabbitMQ重启期间⽣产者消息投递失败), 持久化操作也解决不了这个问题&#xff0c;因为消息根本没有到达服务器&#…

Bash 脚本基础

一、Bash 脚本基础 什么是 Bash 脚本&#xff1a;Bash 脚本是一种文本文件&#xff0c;其中包含了一系列的命令&#xff0c;这些命令可以被 Bash shell 执行。它用于自动化重复性的任务&#xff0c;提高工作效率。 Bash 脚本的基本结构&#xff1a;以 #!/bin/bash 开头&#x…