
C++系统学习
文章平均质量分 94
有C的基础
系统整体学习
Wooden-Flute
有错误请指出
展开
-
十一、引用与拷贝函数(References & the Copy-Constructor)
引用() 通常用于函数参数列表和函数返回值,但你也可以创建一个独立存在的引用。引用在创建时必须被初始化(指针可以先创建,然后再初始化)。一旦引用被初始化为指向某个对象,它就不能被更改为去引用另一个对象。(指针可以重新指向另一个对象)引用始终不能是NULL。必须始终能够假设引用连接到了一个合法的存储区域。示例int& m=a;int n = m;m = m + 5;原创 2025-04-28 21:41:28 · 1071 阅读 · 0 评论 -
十、名字控制(Name Control)
所谓的静态对象(静态元素)是指:在程序运行期间,存储在静态存储区(static storage area)生命周期贯穿整个程序的对象。类型示例说明全局变量int x = 5;存在于整个程序静态局部变量函数内部static,记住上次值类的静态成员变量属于整个类namespace作用域的静态对象同样是静态存储静态类对象构造一次,用到最后关键字static对象被创建在一个特殊的静态数据区(static data area),而不是每次函数调用时创建的**栈(stack)**上,原创 2025-04-28 14:33:00 · 834 阅读 · 0 评论 -
九、内联函数(Inline Functions)
当一个函数代码只有几行,但会被频繁调用时,我们可以使用inline来节省时间并提高效率。内联函数是一个真正的函数,它在调用处被直接展开,就像预处理宏一样,因此可以消除函数调用的开销。内联函数 = 真正的函数 + 具有宏替换的效率。因此,我们在写代码是,应该永远不要使用宏,而是使用内联函数。示例内联函数 = 结合了宏的效率和函数的安全性。类内定义的函数默认使inline大型工程中,最好将inline函数定义写在类外,保持接口整洁。原创 2025-04-26 14:48:24 · 563 阅读 · 0 评论 -
七、函数重载与默认参数(Function Overloading & Default Arguments)
默认参数是在函数声明中给定的一个值,当你在调用函数时没有提供对应的参数值,编译器会自动填入这个默认值。就像函数重载一样,默认参数允许你在不同情况下使用相同的函数名和函数重载不同之处在于,是用默认参数时,是编译器在替你填补参数值,而不是你手动写出多个函数版本。函数重载:使用相同函数名,处理不同类型或数量参数。默认参数:简化函数调用,提升接口友好性。原创 2025-04-25 14:47:18 · 926 阅读 · 0 评论 -
八、Constants(常量)
如果你是通过地址传递和返回const表示你承诺不会改变该地址所指向的内容。如果你是通过值传递对象, 指定cosnt对于调用者来说是没有意义的。如果你是以const方式按值返回一个类对象,这意味着返回值不能作为左值使用(即不能被赋值或修改)。*cip = 2;t(ip);//okt(cip);//error:const不可变非constu(ip);//oku(cip);原创 2025-04-26 11:16:27 · 739 阅读 · 0 评论 -
六、初始化与清理(Initialization & cleanup)
在C++中,清理适合初始化一样重要的。析构函数(Destructor)可以用于对象销毁的清理操作。特点名字为~类名无参数,不可重载无返回值编译器在对象销毁时自动调用C++支持在作用域的任意位置定义变量。最佳实践尽可能靠近使用初定义变量定义时初始化这样做有助于提升安全性与代码可读性聚合初始化是C++中一种通过大括号{}一次性为所有成员赋值的方式。它专门用于“简单的结构体或类”,也就是所谓的“聚合类型”,但也不限于聚合类型。构造函数(初始化对象)析构函数(销毁时清理资源)原创 2025-04-24 16:56:23 · 886 阅读 · 0 评论 -
五、实现隐藏(Hiding the Implementation)
友元函数是一种有特权的函数。允许外部函数(友元函数)或类(友元类)访问本类的私有成员。一个普通的public该函数可以访问类对象的私有部分。该函数属于类的作用域中。(这个函数是在类的”命名空间里面“定义的,它是类的一部分)该函数必须通过对象调用(拥有一个this指针)。一个成员函数仅具有前两个特性。一个friend函数仅具有第一个特性。使用作用域解析符。month = m;day = d;原创 2025-04-23 19:39:00 · 940 阅读 · 0 评论 -
四、数据抽象(Data Abstraction)
C++类与结构体的区别:类与结构体相似,唯一的区别在于类默认是private,而结构体默认是public。在C++中,类是面向对象编程(OOP)的基础概念。在C++中,对象就是一快有唯一标识或内存地址的存储区域。那些仅仅把函数打包进数据结构的语言是面向对象的基础语言(object-based),而不是真正面向对象的语言(object-oriented)。封装(encapsulation):将数据和相关的操作包装成一个新的数据类型,称为抽象数据类型(ADT)。Stash。原创 2025-04-23 08:56:44 · 901 阅读 · 0 评论 -
三、The C in C++
int i,j;delet p;由此可见f()的地址在代码段/文本段,属于静态分配dog,cat,bird,全局变量地址,地址相邻,分配在静态区(BSS段)i、j, 局部变量,地址较低,且和全局变量区分明显,属于栈区,且高地址向低地址增长&p , 局部变量int * p本身的地址,也是栈区&(_p) , 动态分配的int 类型变量地址(通过*_new int),属于堆区。T[size]表示“由size个T类型元素组成的数组”。原创 2025-04-15 20:35:35 · 1091 阅读 · 0 评论 -
一、Class and Object
类:一种“抽象数据类型”,描述一类对象的共性(数据加行为)对象:类的具体实例。原创 2025-04-14 11:55:57 · 1004 阅读 · 0 评论 -
二、Making & Using Objects
项目含义声明 declaration告诉compiler“这个名字存在”定义 definition给这个名字“分配空间/代码”一个名字可以声明多次,但定义只能一次。//只是声明,没有分配空间int i = 0;//定义//声明//声明//声明int func1(int length,int width){}//定义int i = 0;b = 1.2;i = 2;f(b);h(i);原创 2025-04-14 11:56:28 · 938 阅读 · 0 评论