
C++ Primer阅读笔记
文章平均质量分 76
Moyuu233
致力于成为一名优秀的代码搬运工
展开
-
C++动态内存分配与智能指针
C++中的所有对象都执行严格的生存期。对于非动态对象,全局对象在程序启动时分配,在程序结束时销毁。对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁。局部static对象在第一次使用前分配,在程序结束时销毁。除此之外,C++还支持动态分配对象,动态分配的对象的生存期与在哪里创建是无关的,只有当显式地被释放时,这些对象才会被销毁。非动态创建的对象,一般分配在静态内存和栈内存中,静态内存用来保存局部static对象,类static数据成员以及定义在任何函数之外的变量。原创 2025-02-05 21:14:59 · 434 阅读 · 0 评论 -
C++函数简介
return语句返回值的类型必须与函数的返回类型相同,或者能隐式地转换成函数的返回类型。当执行指针拷贝操作时,拷贝的是指针的值。因为不能拷贝数组,所以我们无法以值传递的方式使用数组参数,因为数组会被转换为指针,所以当我们为函数传递一个数组时,实际传递的是指向数组首元素的指针。它们对函数而言是“局部”的,仅在函数的作用域内可见,同时局部变量还会隐藏在外层作用域中同名的其他声明。返回一个值的方式和初始化一个变量或形参的方式完全一样:返回的值用于初始化调用点的一个临时量,该临时量就是函数调用的结果。原创 2025-02-05 21:09:30 · 797 阅读 · 0 评论 -
类的自动转换和强制类型转换
类型转换内置类型转换:将一个标准类型变量的值赋给另一个标准类型的变量时,如果这两种类型兼容,则c++自动将这个值转变为接收变量的类型。eg:long cout=8; //int型的8将被转换为longdouble time =11; // int型的11将被转换为doubleint side=3.33 //double类型的3.33将被转换为int的3上述赋值语句都是可行的,因为在c++看来,各种数值类型都表示相同的东西——一个数字。类的强制类型转换#in...原创 2021-01-05 15:58:54 · 133 阅读 · 0 评论 -
C++ 友元
友元C++控制对类对象数据的私有访问,通常情况下,公有方法提供唯一的访问途径,有时由于这种限制太严格,以致于不适合特定的编程问题。在这种情况下,C++提供了一种形式访问权限:友元友元有三种:友元函数 友元类 友元成员函数通过让函数成为类的友元,可以赋予该函数与类的成员函数相同的访问权限。以下主要介绍友元函数创建友元函数创建友元函数的第一步是将其原型放在类声明中,并在原型中附上friend关键字eg:friend Time operator*(double m,const .原创 2020-12-16 22:28:50 · 167 阅读 · 0 评论 -
C++运算符重载
运算符重载运算符重载是一种形式的C++多态。c++能够使用户定义多个名称相同但特征标(参数列表)不同的函数。这种被称为函数重载或者函数多态,旨在能用同名的函数来完成相同的操作。运算符重载也是如此。例如*号操作既可用于做指针地址,又可用于做两个数之间的乘法操作。C++会根据操作数的数目和类型来决定采用哪种操作。重载运算符方式:operatorop(argument-list)eg:operator+() 重载+号运算符,operator *()重载*号运算符。op必须为有效的运算符。以下.原创 2020-12-16 20:19:33 · 1214 阅读 · 0 评论 -
对象与类
面向对象编程(OOP)特性抽象封装和数据隐藏多态继承代码的可重用性类规范的组成类声明:以数据成员的方式描述数据部分,以成员函数(被称为方法)的方式描述公有接口。类方法定义:描述如何实现类成员函数。类和结构体最大的区别在于:结构体的默认访问类型是public,而类为private*如果函数定义位于类声明中,那么函数将自动成为内联函数*所创建的每一个对象都有自己的存储空间,用于存储其内部变量和类成员;但是同一个类的所有对象共享同一组类方法,即每一种方...原创 2020-12-12 16:43:42 · 107 阅读 · 0 评论