https://note.youdao.com/s/BGiSQ9uwhttps://note.youdao.com/s/BGiSQ9uw
封装一个结构体,结构体中包含一个私有数组,用来存放学生的成绩,包含一个私有变量,用来记录学生个数,
提供一个公有成员函数,void setNum(int num)用于设置学生个数
提供一个公有成员函数:void input(),用来对所有学生的成绩进行输入工作
提供一个公有成员函数:void sort(),用来实现对存储的学生成绩进行降序排序
提供一个公有的成员函数:void show(),用于将所有学生的成绩展示出来
在主程序中,完成相关函数的调用
#include
using namespace std;
struct STU{
private:
double *p = new double[30];
private:
int num;
public:
void setNum(){
cin>>num;
}
public:
void input(){
for(int i=0;i>p[i];
}
}
public:
void sort(){
for(int i=1;i
面试题:
1.指针与引用的区别:
(1).指针是记录变量的地址,而引用是相当于复制变量,是其本身
(2).定义指针会占内存8字节空间,但是引用不会,和变量共用同一片空间
(3).指针需要解引用才可以改变变量的值,引用只需改变自己的值就可以改变变量的值
(4).指针定义后可以改变指向,但是引用不能改变
(5).指针可以有多层,但是引用只能有一层
(6).const修饰指针可以控制其指向的空间和值,修饰引用时只能修饰值
(7).没有引用数组,但是有数组引用
(8).定义引用必须初始化,而定义指针可以不初始化
2.malloc,free和new,delete区别
(1).new申请空间时,可以给堆区空间初始化,malloc不可以;
(2).new\delete是关键字,而malloc\free是库函数
(3).new申请空间时以数据类型为单位,而malloc申请空间时以字节为单位
(4).new申请的空间返回的结果申请类型的指针,而malloc申请空间时返回void*类型,需要进行强转后使用
(5).new申请空间时会调用构造函数,malloc不会
(6).delete释放空间时,会调用析构函数,free不会
3.C++中const的使用
(1).修饰变量:使用const修饰的变量在声明时必须进行初始化,并且在程序运行期间其值是不可修改的
(2).修饰函数返回类型:const可以用于修饰函数返回类型,表示返回的值是一个常量,不能被修改
(3).修饰函数参数:使用const修饰函数参数表示该参数在函数内部是只读的,不能被修改。这样可以确保函数不会无意间修改参数的值
(4).修饰成员函数:const可以用于修饰类的成员函数,表示该函数在内部不会修改对象的状态。这样的成员函数称为常量成员函数,可以在常量对象上进行调用
4.什么是回调函数
回调函数是指一个被传入另一个函数的函数指针(或函数对象、函数引用),在特定事件或条件满足时由另一个函数调用。
回调函数的使用可以将程序的逻辑控制权转移给另一个函数或模块,在事先约定的情况下,由另一个函数来调用指定的回调函数,以响应某些事件或完成特定的任务。
5.函数重载的相关内容
C++中支持函数重载,即:在同一作用域下,可以定义多个同名的函数,但是要求参数列表必须不同,所谓函数重载,是静态多态的一种,能够做到“一名多用”
函数重载的要求:
1、函数名相同
2、形参列表必须不同:可以是参数个数不同、参数类型不同
3、作用域也要相同
4、跟返回值没有关系
调用:当调用函数时,系统会根据传递的实参类型,自动匹配相应的重载函数
6.对对象的理解
在C++中,对象是一种具有状态和行为的数据结构。它是基于类(class)定义的,通过实例化类(创建对象)来使用。
对象的概念是将现实世界的事物抽象成计算机程序中的实体。每个对象都有自己的属性(成员变量)和操作(成员函数),这些属性和操作定义了对象的行为和能力。
C++中的对象可以分为以下几类:
通过使用对象,我们可以将程序的逻辑划分为多个独立的模块,每个模块负责管理和处理自己相关的数据和问题。通过面向对象的思想,可以更好地组织和管理代码,提高代码的可读性、可维护性和可扩展性。