C++拾遗014-程序终止 发表于 2023-01-23 | 分类于 C++ Addition | 0 | 阅读次数 221 1. terminate function如果没有任何一个层次的异常处理器能够捕获某种异常,一个特殊的库函数terminate()(在头文件中定义)会被自动调用。默认情况下,terminate函数回调用标准C库中abort()函数使程序异常终止。在UNIX系统中,abort函数还会导致主存储信息转储 阅读全文 »
C++拾遗013-C++异常处理 发表于 2023-01-22 | 分类于 C++ Addition | 0 | 阅读次数 217 1. C中异常处理的方式在函数中返回错误信息,设置全局错误状态(使用errno和perror)使用C库中信号处理系统,由函数signal() 推断事件发生的原因 和函数raise() 产生一个事件,该方式耦合度非常高,且在大型项目中容易产生信号值冲突使用C库中非局部跳转函数:setjmp() 和 l 阅读全文 »
C++拾遗012-内存耗尽处理 发表于 2023-01-20 | 分类于 C++ Addition | 0 | 阅读次数 151 当内存耗尽时,一个名为new-handler的特殊函数会被执行,其默认动作是抛出一个异常,可以重写此函数来输出提示信息有利于调试。通过包含new.h来替换new-handler:#include <iostream>#include <new> // set_new_han 阅读全文 »
C++拾遗011-类成员指针 发表于 2023-01-20 | 分类于 C++ Addition | 0 | 阅读次数 123 1. 成员指针 pointer to member声明成员变量指针必须加域: int SomeClass::pointer_to_member = &SomeClass::SomeMember;#include <iostream>using namespace std;clas 阅读全文 »
C++拾遗010-引用 reference 备忘 发表于 2023-01-20 | 分类于 C++ Addition | 0 | 阅读次数 172 引用被创建时, 它必须被初始化一旦一个引用被初始化指向一个对象,不能改变为另一个对象的引用不可能由NULL引用,必须确保引用时和一块合法的存储单元关联 阅读全文 »
C++拾遗009-使用C编译库 替代连接说明 发表于 2023-01-20 | 分类于 C++ Addition | 0 | 阅读次数 204 若在C中编写的一个程序需要用到一个C编译的库:如: float func(int a, char a);C的编译器会将其变成_func_int_char之类的以支持函数重载,但C的编译器一般是将其变成_func之类的,这样连接器将无法解释C++对func()这样的调用。因此,C++中提供了一个替代连 阅读全文 »
C++拾遗008-命名空间 namespace 发表于 2023-01-20 | 分类于 C++ Addition | 0 | 阅读次数 114 名字空间的定义与类非常相似,包含了各种声明。namespace MyLibrary{// Declarations}namespace只能在全局范围内定义,可以互相嵌套大括号结尾无需封号可以在多个文件中定义相同的namespace一个namespace可以用另一个名字作它的别名:namespace 阅读全文 »
C++拾遗007-makefile后缀规则 发表于 2023-01-19 | 分类于 C++ Addition | 0 | 阅读次数 147 # 设置宏CPP = g++OFLAG = -o.SUFFIEXS: .out .cpp.cpp.out:# from cpp to out$(CPP) $< all: cpp1 cpp2 #输入make命令 即可编译cpp1 cpp2, all可以取任何其他名称 阅读全文 »
C++拾遗006-函数指针 发表于 2023-01-19 | 分类于 C++ Addition | 0 | 阅读次数 134 1. 定义函数指针定义一个函数指针:void (*funcPtr)();funcPtr是一个指针,指向一个不带参数并返回void的函数。更复杂的例子:void * (*(fp1)(int))[10];// fp1是一个指向函数的指针,该函数接受一个int并返回一个指向含有10个void指针数组的指针 阅读全文 »
C++拾遗005-宏定义打印 发表于 2023-01-19 | 分类于 C++ Addition | 0 | 阅读次数 129 使用宏定义可以很方便打印,便于调试期间的打印需求:#include <iostream>#include <string>#define PR(X) cout << #X << " : " << X << e 阅读全文 »