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

devtools/2025/3/29 7:50:52/

在哔哩哔哩学习的这个老师的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/devtools/171285.html

相关文章

python如何随机选取n个不同的数字

python随机选取n个不同的数字的方法&#xff1a; 1、使用“import random”导入random包 2、通过for语句循环执行n次“random.randint()”语句获取n个随机数并将随机数输入到列表中 n10示例如下&#xff1a; 3、用set函数去重就可以了 完整代码&#xff1a;

简单理解机器学习中top_k、top_p、temperature三个参数的作用

AI系列文章&#xff1a; AWS AI认证考试中经常提及几个重要的工具介绍 简单理解机器学习中top_k、top_p、temperature三个参数的作用 用Deepseek Kimi 快速生成高质量的ppt 在机器学习中&#xff0c;top_k、top_p 和 temperature 是用于控制生成模型&#xff08;如语言模型…

腾讯云智面试1.0

以下是针对腾讯云智系统测试岗位校招面试问题的详细解答&#xff0c;结合测试开发所需的技术理解与实践经验&#xff1a; 1. Selenium底层原理 回答要点&#xff1a; 架构模式&#xff1a;基于Client-Server模型&#xff0c;通过WebDriver协议&#xff08;JSON Wire Protocol…

Java学习总结-Map集合的实现类

HashMap集合的底层原理 实际上&#xff1a;原来学的Set系列集合的底层就是基于Map实现的&#xff0c;只是Set集合中的元素只要键数据&#xff0c;不要值数据。 哈希表&#xff1a; JDK8之前&#xff0c;哈希表 数组 链表&#xff1b; JDK8开始&#xff0c;哈希表 数组 …

第30周Java分布式入门 ThreadLocal

ThreadLocal 课程笔记 一、章节结构概述 本章主要学习重要的工具类 ThreadLocal。章节分为六大模块&#xff1a; ThreadLocal 的两大使用场景ThreadLocal 所带来的好处ThreadLocal 的主要方法及使用顺序ThreadLocal 原理源码分析使用 ThreadLocal 的注意点和使用规范 从下一…

Linux学习笔记(应用篇二)

基于I.MX6ULL.MINI开发板 开发板与电脑相互通信电脑与开发板互传文件 开发板与电脑相互通信 用网线将电脑与开发板连接 本人使用的是Ubuntu系统&#xff0c;不是虚拟机 一般来说刚开始电脑和开发板是ping不通的 首先查看电脑的 IP WinR&#xff0c;cmd调出终端 我使用的是…

centos 7 部署FTP 服务用shell 搭建脚本,使用时稍微修改自己所需需求

#!/bin/bash # 检查是否为 root 用户 if [ "$(id -u)" ! "0" ]; then echo "此脚本需要以 root 用户身份运行。" exit 1 fi # 安装 vsftpd yum install vsftpd -y # 备份原始配置文件 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd…

ngx_http_core_location

定义在 src\http\ngx_http_core_module.c static char * ngx_http_core_location(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy) {char *rv;u_char *mod;size_t len;ngx_str_t *value, *n…