韩旭柯_2404020105_网络24_1 level
获赞
1
粉丝
0
关注
0
看过 TA
15
哈尔滨理工大学
2028
算法工程师
IP属地:黑龙江
暂未填写个人简介
私信
关注
学习了 C++ 的面向对象编程的基本概念,包括类和对象。类是一种抽象的数据类型,它定义了一组数据成员和成员函数,用于描述一类事物的共同特征和行为。对象则是类的实例,通过创建对象,可以使用类中定义的成员变量和成员函数。学习了类的定义和声明,以及如何在类中定义成员函数和数据成员。成员函数可以访问和修改类的数据成员,通过对象来调用成员函数,实现对对象状态的操作和行为的执行。尝试定义了一个简单的 Circle 类,包括圆的半径作为数据成员,以及计算圆的面积和周长的成员函数。通过创建 Circle 类的对象,并调用其成员函数,初步体验了面向对象编程的魅力。类与对象的定义类的定义:在 C++ 中,类是一种用户自定义的数据类型,它将数据成员(属性)和成员函数(方法)组合在一起。类定义的基本语法如下:生成中cppclass ClassName {private:    // 私有成员,只能在类内部访问    data_type member_variable1;    //...protected:    // 受保护成员,可在类及其派生类内部访问    data_type member_variable2;    //...public:    // 公共成员,可在任何地方访问    data_type member_variable3;    // 成员函数声明    return_type member_function1(parameters);    //...};今天对面向对象编程的入门学习让我感受到了一种全新的编程思维方式,与之前的面向过程编程有很大的不同,也让我对 C++ 语言的强大功能有了更深的认识。
0 点赞 评论 收藏
分享
今天深入学习结构体,学习了结构体的嵌套和结构体指针。结构体的嵌套可以将一个结构体作为另一个结构体的成员,这样可以构建更加复杂的数据结构。结构体指针的使用方法和普通指针类似,可以通过指针来访问结构体的成员变量,使用箭头运算符(->)。在处理动态分配的结构体数组时,结构体指针也发挥了重要作用。练习了一些关于结构体嵌套和结构体指针的练习题,比如定义一个包含多个结构体成员的复杂数据结构,并实现对其成员的访问和修改。在这个过程中,遇到了一些指针操作和内存管理方面的问题,通过调试和查阅资料,逐渐解决了这些问题,也进一步加深了对结构体的理解。结构体的学习让我能够更好地组织和处理复杂的数据,提高了编程的灵活性和可扩展性。优势:更好地表示复杂对象:能够真实地模拟现实世界中具有层次结构的对象,使数据结构更符合实际需求。数据组织的紧凑性和关联性:将相关的数据紧密地组织在一起,方便数据的管理和传递。例如,在网络通信中,发送和接收的数据结构可能是嵌套的结构体,这样可以一次性传递和处理多个相关的信息。应用场景:游戏开发:用于描述游戏中的角色、道具等复杂对象。比如一个游戏角色结构体可能嵌套了角色的装备结构体(包含武器、防具等)、属性结构体(力量、敏捷等)。数据库系统:在数据库系统的编程接口中,结构体嵌套可以用于表示复杂的表结构和数据关系。例如,一个数据库记录可能包含多个子记录,这些子记录可以用嵌套结构体来表示
0 点赞 评论 收藏
分享
开始学习结构体,结构体可以将不同类型的数据组合在一起,形成一个新的数据类型,方便对相关数据进行统一管理和操作。学习了结构体的定义、初始化和访问成员的方法。定义结构体时,需要指定结构体的成员变量及其类型。初始化结构体可以使用花括号括起来的初始值列表,也可以在定义后逐个对成员变量进行赋值。访问结构体成员可以使用点运算符(.)cstruct 结构体名 {    成员类型1 成员名1;    成员类型2 成员名2;    //...};例如,定义一个学生结构体:cstruct Student {    char name[20];    int age;    float score;};在 C++ 中,结构体定义除了上述方式外,还可以像类一样,在定义结构体时直接定义成员函数,而且结构体默认访问权限是 public,而不是像类一样默认为 private。例如:。尝试定义了一个表示学生信息的结构体,包括学生的姓名、年龄、成绩等成员变量,并写了一些函数来对学生信息进行输入、输出和统计等操作。通过这些练习,对结构体的使用有了初步的掌握,也体会到了结构体在实际编程中的便利性。今天对结构体的学习让我认识到了一种新的组织数据的方式,为后续的编程学习打下了基础。
0 点赞 评论 收藏
分享
今天学习了指针与函数的关系,指针可以作为函数的参数传递,也可以作为函数的返回值。当指针作为函数参数时,可以在函数内部修改其所指向的变量的值,从而实现对外部变量的间接修改,这在很多实际应用中非常有用。学习了指向函数的指针,也就是函数指针。函数指针可以用来存储函数的地址,通过函数指针可以调用相应的函数。这是一个比较高级的概念,理解起来有些困难,但是通过一些简单的示例代码,逐渐明白了其基本原理和使用方法。指针数组是一个数组,其元素是指针。在 C 和 C++ 语言中,定义指针数组的一般格式为类型 *数组名[数组大小];。例如,int *ptr_array[5];定义了一个包含 5 个元素的指针数组ptr_array,其中每个元素都是一个指向int类型的指针。指针数组的初始化可以在声明指针数组时进行初始化。例如:cint num1 = 1, num2 = 2, num3 = 3;int *ptr_array[3] = {&num1, &num2, &num3};这里创建了一个包含 3 个元素的指针数组ptr_array,并将数组中的每个元素分别初始化为指向num1、num2和num3这三个变量的地址。尝试写了一个简单的计算器程序,使用函数指针来实现不同的运算功能,根据用户的选择调用相应的函数。这个程序的实现让我对函数指针的应用有了更直观的感受,也提高了自己解决实际问题的能力。今天的学习内容比较有挑战性,但也让我收获颇丰,对指针和函数的理解上升到了一个新的层次。
0 点赞 评论 收藏
分享
继续学习指针,今天学习了指针与数组的关系。发现数组名其实就是一个指针常量,它指向数组的第一个元素的地址。通过指针可以像使用数组下标一样访问数组元素,而且在某些情况下,使用指针来遍历数组可能会更加高效。在 C 和 C++ 等编程语言中,数组名可以看作是一个常量指针,它指向数组的第一个元素。例如,对于数组int arr[] = {1, 2, 3, 4, 5};,数组名arr实际上就是一个指向arr[0]的指针,即arr和&arr[0]在值上是相等的。可以通过指针的方式来访问数组元素。例如,*(arr + 1)等价于arr[1],这里arr + 1表示指针arr向后移动一个元素的位置(因为arr指向的是int类型,在大多数系统中int类型占 4 个字节,所以arr + 1实际上是地址增加了 4 个字节),然后通过解引用操作*来获取该位置上的元素值。学习了指针的算术运算,比如指针的加法、减法和自增自减操作。这些运算在处理数组和字符串时非常有用,但也需要注意指针的运算结果必须是指向有效的内存地址,否则会导致程序错误。练习了一些关于指针和数组的综合练习题,比如使用指针实现数组的排序、查找等操作。在实现这些功能的过程中,对指针和数组的结合运用有了更深入的理解,也进一步提高了自己的编程能力。指针的学习虽然有些难度,但也让我感受到了 C++ 语言的强大和精妙之处。
0 点赞 评论 收藏
分享
今天开始学习指针,指针是 C++ 中比较难理解的概念之一。指针可以理解为一个变量,它存储的是另一个变量的地址。通过指针,可以间接访问和修改其所指向的变量的值。声明:在 C 和 C++ 中,指针变量的声明格式一般为类型 *指针变量名;。例如,int *ptr;声明了一个可以指向int类型变量的指针ptr。float *fp;则声明了一个指向float类型变量的指针。初始化:指针可以在声明时初始化,也可以先声明后初始化。例如:int num = 10; int *p = #:这里在声明指针p的同时,将它初始化为指向变量num的地址。也可以先声明:int *q;,然后再初始化:int var = 20; q = &var;学习了指针的定义、初始化和使用方法,一开始对指针的操作感到很困惑,特别是在指针的解引用和地址运算方面,总是容易出错。但是通过反复阅读教材和参考示例代码,逐渐掌握了一些基本的指针操作技巧。尝试写了一个通过指针交换两个变量值的程序,虽然代码不长,但是理解其中的原理花了不少时间。同时,也深刻体会到了指针在提高程序效率和灵活性方面的强大作用,但也需要更加小心谨慎地使用,因为指针操作不当很容易导致内存错误。今天对指针有了初步的认识,接下来还需要更多的练习来加深对指针的理解和掌握。
0 点赞 评论 收藏
分享
今天深入学习函数,学习了函数的重载。函数重载允许定义多个同名函数,但它们的参数列表不同(参数个数、参数类型或参数顺序不同)。这样可以根据不同的参数情况,调用相应的函数,提高了函数的灵活性和易用性。在实现函数重载时,要注意函数的签名必须唯一,否则会导致编译错误。同时,也要注意函数重载的目的是为了提供更加方便和直观的接口,而不是滥用重载。函数重载指的是在同一个作用域内,可以定义多个同名函数,但是这些同名函数的参数列表(参数个数、参数类型或者参数顺序)必须不同。编译器会根据调用函数时传递的实际参数情况,来自动确定具体调用的是哪一个重载版本的函数,这样使得同一个函数名可以执行不同但相关的操作,增强了代码的可读性和灵活性。C++ 语言中的函数重载示例cpp#include using namespace std;// 重载的加法函数,用于两个整数相加int add(int num1, int num2) {    return num1 + num2;}// 重载的加法函数,用于两个浮点数相加float add(float num1, float num2) {    return num1 + num2;}int main() {    int intResult = add(3, 5);    cout     float floatResult = add(3.14f, 2.5f);    cout     return 0;}在上述 C++ 代码中,有两个add函数,一个用于处理整数相加,参数类型为int;另一个用于处理浮点数相加,参数类型为float。在main函数中调用add函数时,编译器会根据传入的实际参数类型来决定调用哪个版本的add函数。学习了函数的默认参数,即在函数定义时,可以为某些参数指定默认值。这样在调用函数时,如果没有传递该参数的值,则会使用默认值。默认参数必须从右向左依次定义,而且一旦某个参数有了默认值,其右边的所有参数都必须有默认值。通过一些示例代码的练习,对函数重载和默认参数有了较好的理解,感觉自己对函数的掌握又更进了一步。
0 点赞 评论 收藏
分享
今天学习了函数的定义和使用。函数可以将一段具有特定功能的代码封装起来,使程序的结构更加清晰,也便于代码的复用。学习了函数的参数和返回值,参数可以用来传递数据给函数,返回值则可以将函数的计算结果返回给调用者。在定义函数时,要注意函数的参数类型和返回值类型的匹配。返回值类型 functionName(参数类型 参数名1, 参数类型 参数名2,...) {    // 函数体,包含具体的操作语句    return 返回值;}例如,定义一个简单的函数来输出欢迎信息:cpp#include using namespace std;void sayHello() {    cout }这里定义了一个无返回值(返回类型为void)的函数,其功能就是输出一段文本内容。这些只是初步定义函数的基础示例,不同语言在函数的细节特性(比如参数传递方式、函数重载、默认参数等方面)都还有很多可以深入学习和拓展的内容。尝试写了一些简单的函数,比如计算两个数的最大值、最小值,以及实现一个简单的数学运算函数库。在调用这些函数时,一开始对函数的参数传递方式有些混淆,导致函数的结果不正确,经过仔细检查和调试,终于找到了问题所在。通过今天的学习,认识到函数是 C++ 编程中非常重要的一部分,合理地使用函数可以大大提高编程的效率和代码的质量。
0 点赞 评论 收藏
分享
今天深入学习了数组,学习了二维数组的概念和使用方法。二维数组就像是一个表格,可以用来表示矩阵等数据结构。在理解二维数组的存储方式和访问元素的方法上花了一些时间,通过画图的方式,终于搞清楚了行和列的索引关系。二维数组可以看作是一个具有行和列的表格形式的数据结构。在 C 和 C++ 语言中,二维数组本质上是一个数组的数组。例  如,int arr[3][4]; 定义了一个二维数组,它可以被看作是有 3 行 4 列的表格,总共包含 3×4 = 12 个元素。二维数组中的每个元素都通过两个索引来访问,第一个索引表示行,第二个索引表示列。索引从 0 开始计数,所以对于上述定义的数组,有效的行索引是 0、1、2,有效的列索引是 0、1、2、3。初始化方式按行初始化:可以在定义二维数组时对其进行初始化,按行初始化是比较直观的方式。例如:cppint arr[2][3] = {    {1, 2, 3},    {4, 5, 6}};这种方式明确地将第一行初始化为 1, 2, 3,第二行初始化为 4, 5, 6。顺序初始化:也可以按照元素在内存中的存储顺序进行初始化。对于二维数组,元素在内存中是按行存储的(即先存储第一行的所有元素,再存储第二行的元素,以此类推)。例如:练习了用二维数组来解决一些实际问题,比如矩阵的加法、乘法等。在实现矩阵乘法的程序时,遇到了不少困难,需要仔细考虑内层循环和外层循环的嵌套逻辑,以及如何正确地计算每个元素的值。还学习了如何将数组作为函数的参数传递,发现传递数组时,实际上传递的是数组的首地址,这一点和普通变量的传递有所不同。在函数中对数组进行修改,会直接影响到原始数组的值。今天的学习内容有些难度,但也让我对数组的理解更加深入了,感觉自己的编程能力又有了一点进步。
0 点赞 评论 收藏
分享
     C++中的数据类型包括int(整数)、float(单精度浮点数)、double(双精度浮点数)和char(字符类型,用于存储字母或符号)。    在编程中,int、char、float 和 double 是常见的数据类型,通常用于定义变量以存储不同类型的数据。以下是它们的简 要介绍:int:定义:代表整数类型,通常用于存储没有小数部分的数字。大小:通常占用4字节(32位),可以表示的范围因编程语言和系统架构而异,一般为 -2,147,483,648 到 2,147,483,647。char:定义:代表字符类型,通常用于存储单个字符。大小:通常占用1字节(8位),可以表示ASCII码中的字符(0到255)。float:定义:代表单精度浮点数,用于存储带小数的数字。大小:通常占用4字节(32位),可以表示的范围约为 -3.4 × 10^38 到 3.4 × 10^38,精度大约为7位十进制数。double:定义:代表双精度浮点数,适用于需要更高精度的带小数的数字。大小:通常占用8字节(64位),可以表示的范围约为 -1.7 × 10^308 到 1.7 × 10^308,精度大约为15位十进制数。所学示例:#includeusing namespace std;int main(){   int a   ;   char  b   ;   double  c ;   float  d  ;}
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务