每日小记(2023年8月26日)

本文概述了字符串长度和数组大小的区别,介绍了指针和引用的相同点与区别,讨论了内部类、访问修饰符、拷贝构造函数的使用场景,以及抽象类和接口的区别与联系,强调了它们在编程设计中的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串长度和大小

计算字符串的长度是从第一个字符开始一直计数到第一个’\0’为止(不包含‘\0’),对于st存放的字符串,第6个元素就是’\0’,所以字符串的长度是5,但数组st的大小与赋值的字符串无关,是其定义时的大小20。所以正确答案是B。

各排序法属性比较

指针和引用

指针和引用的敏感词与区别

★ 相同点:都是地址的概念; 指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。

★ 区别: 1. 指针是一个实体,而引用仅是个别名; 2. 引用使用时无需解引用(*),指针需要解引用; 3. 引用只能在定义时被初始化一次,之后不可变;指针可变; 5. 引用不能为空,指针可以为空; 6. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小; 7. 指针和引用的自增(++)运算意义不一样; 8.从内存分配上看:程序为指针变量分配内存区域,而引用不需要分配内存区域。 

 内部类

 不同访问修饰符作用范围

 c++拷贝构造函数什么时候调用

拷贝构造函数从来不显式调用,而是由编译器隐式地调用:

(1)    用类的一个对象去初始化另一个对象时;

(2)    当函数的形参是类的对象时(也就是值传递时),如果是引用传递则不会调用;

(3)    当函数的返回值是类的对象或引用时。

抽象类和接口的区别与联系

        接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。另外,接口和抽象类在方法上有区别:    

1.抽象类可以有构造方法,接口中不能有构造方法。  

2.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。

3.抽象类中可以有普通成员变量,接口中没有普通成员变量 

4. 抽象类中的抽象方法的访问类型可以是public,protected和默认类型

5. 抽象类中可以包含静态方法,接口中不能包含静态方法

6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型

7. 一个类可以实现多个接口,但只能继承一个抽象类。

二者在应用方面也有一定的区别:

        接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间的通信契约。而抽象类在代码实现方面发挥作用,可以实现代码的重用,例如,模板方法设计模式是抽象类的一个典型应用,假设某个项目的所有Servlet类都要用相同的方式进行权限判断、记录访问日志和处理异常,那么就可以定义一个抽象的基类,让所有的Servlet都继承这个抽象基类,在抽象基类的service方法中完成权限判断、记录访问日志和处理异常的代码,在各个子类中只是完成各自的业务逻辑代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值