# C++记录 size_t、引用与常量引用、构造函数给类参数赋值、析构函数

本文深入探讨了C++中的size_t类型,解析其无符号特性及平台无关性,对比不同环境下的类型定义。同时,详细讲解了引用的概念,包括T&与T*const的关系,const引用与非const引用的区别,以及左值与右值的概念。此外,还介绍了构造函数的参数赋值方法,展示了如何通过成员初始化列表给类成员变量赋值。

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

C++记录

1.size_t
size_t是一种无符号的整型数,它的取值没有负数,在数组中也用不到负数,而它的取值范围是整型数的双倍。sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。
typedef unsigned int size_t
size_t是无符号的,并且是平台无关的,表示0-MAXINT的范围
size_t是标准规定的一个同义词,它的原始定义放在stddef.h里面,不同的环境下,
可以是typedef unsigned size_t;
也可以是
typedef unsigned long size_t;
2. C++引用
参考网址
(1)从引用的使用方式上,可以推导出T& == T* const,一个不可修改指向地址的指针,但指向内容是非const,依然可以修改内容
(2)const引用可以绑定一个常量值,而不一定是一个类型对象,这样作为参数的时候,const引用可以使用临时对象和常量值作为参数,而非const引用作为参数,只能使用一个引用对象作为参数
(3)可以通过&运算符获取地址的,就是左值;若否就是右值。
(4)引用一般的概念称为变量的别名,定义的时候必须初始化绑定一个指定对象,且中途不可更改绑定对象。
(5)常量引用只有2种情况会绑定到实际的对象:一是常量引用的初始值为const对象,且该对象类型与常量引用类型相同(如const int i ; const int &r = i;);二是常量引用的初始值为非const对象,且该对象也与常量引用类型(除去const的类型)相同(如int i; const int &r = i;).测试代码中,r2的情况即是如此.这种情况下,绑定的非const对象内容可以用其他普通引用改变.
参考网址  
3. 构造函数给类中参数赋值
参考代码:

class Student{
 5 public:
 6     Student(){
 7         cout<<"调用默认构造函数"<<endl;
 8     };
 9     Student(string name,int age,string gender):Name(name),Age(age),Gender(gender){
10         //cout<<"调用构造函数1"<<endl;
11     }
12     Student(const Student& stu){//拷贝构造函数
13         Name=stu.Name;
14         Age=stu.Age;
15         Gender=stu.Gender;
16         cout<<"调用拷贝构造函数"<<endl; 
17     }
18     ~Student(){
19         //cout<<"调用析构函数"<<endl;
20     } 
21     void show(){
22         cout<<"Name:"<<Name<<endl;
23         cout<<"Age:"<<Age<<endl;
24         cout<<"Gender:"<<Gender<<endl; 
25     }
26 private:
27     string Name;
28     int Age;
29     string Gender;
30 }; 
  1. 构造函数前加~:析构函数
    参考网址
    (1)析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。

(2)以C++语言为例:析构函数名也应与类名相同,只是在函数名前面加一个位取反符,例如stud( ),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。如果用户没有编写析构函数,编译系统会自动生成一个缺省的析构函数,它也不进行任何操作。所以许多简单的类中没有用显示的析构函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值