随笔分类 -  C/C++

摘要:在程序中,会用到各种类型的数据参与运算,但是在不同平台上,具体能提供的数据类型不同,如部分ARM平台只有float而无double,若在程序中使用double声明变量,则移植到ARM平台上后无法正常运行。而在头文件中使用typedef声明了类型的别名,那么在程序中使用这些别名来声明变量,当在不存在这 阅读全文
posted @ 2022-03-18 10:56 溪嘉嘉 阅读(39) 评论(0) 推荐(0) 编辑
摘要:当某库文件对应的头文件已经在Ubuntu系统默认的头文件搜索目录(如/usr/include)下时,在Qt工程中的.pro文件中添加如下内容: LIBS += -llib-name 即可在编译的链接阶段将库链接进来,其中lib-name为库的名称,注意前缀“l”。 当库文件不在Ubuntu系统默认的 阅读全文
posted @ 2022-03-10 17:42 溪嘉嘉 阅读(1396) 评论(0) 推荐(0) 编辑
摘要:派生 公有继承 包含 私有继承 保护继承 多重继承 关系 is-a has-a has-a hsa-a is-a 关键词 public private protected 继承内容 继承了基类的数据成员(实现)和基类的方法(接口),但基类的构造函数和析构函数不被继承 将对象作为一个命名的成员对象添加 阅读全文
posted @ 2021-08-23 11:35 溪嘉嘉 阅读(81) 评论(0) 推荐(0) 编辑
摘要:对于构造函数Queue::Queue(int qs): Queue::Queue(int qs) { front = NULL; rear = NULL; items = 0; qsize = qs; } 当qsize为常量(即const int qsize)时,上述实现无法正常运行。因为调用构造函 阅读全文
posted @ 2021-08-17 13:41 溪嘉嘉 阅读(169) 评论(0) 推荐(0) 编辑
摘要:类型转换 内置类型转换 将一个标准类型变量的值赋给另一种标准类型的变量时,如果这两种类型兼容,则C++自动将这个值转换为接收变量的类型,虽然在某些情况下可能导致精度的降低。 C++不自动转换不兼容的类型,如无法将整型自动转换为指针类型,但在不考虑是否有意义的情况下,这可以通过强制类型转换实现,例如: 阅读全文
posted @ 2021-08-15 15:34 溪嘉嘉 阅读(253) 评论(0) 推荐(0) 编辑
摘要:枚举的基本用法 枚举在类中的用法 p371 阅读全文
posted @ 2021-08-15 15:33 溪嘉嘉 阅读(40) 评论(0) 推荐(0) 编辑
摘要:函数模板 函数模板 template <typename T> void Swap(T &a, T &b); // 函数模板原型 template <typename T> void Swap(T &a, T &b) // 函数模板定义 { T temp; temp = a; a = b; b = 阅读全文
posted @ 2021-08-15 15:32 溪嘉嘉 阅读(74) 评论(0) 推荐(0) 编辑
摘要:第Ⅳ部分 高级主题 第17章 标准库特殊设施 第18章 用于大型程序的工具 第19章 特殊工具与技术 阅读全文
posted @ 2021-02-23 08:59 溪嘉嘉 阅读(32) 评论(0) 推荐(0) 编辑
摘要:第Ⅲ部分 类设计者的工具 第13章 拷贝控制 第14章 重载运算符与类型转换 第15章 面向对象程序设计 第16章 模板与泛型编程 阅读全文
posted @ 2021-02-23 08:57 溪嘉嘉 阅读(24) 评论(0) 推荐(0) 编辑
摘要:第Ⅱ部分 C++标准库 第8章 IO库 第9章 顺序容器 第10章 泛型算法 第11章 关联容器 第12章 动态内存 阅读全文
posted @ 2021-02-23 08:56 溪嘉嘉 阅读(28) 评论(0) 推荐(0) 编辑
摘要:第1章 开始 第Ⅰ部分 C++基础 第2章 变量和基本类型 使用int执行整数运算(而非short);使用doule执行浮点数运算(而非float)。 在算术表达式中不要使用char或bool。 当明确知晓数值不可能为负时,选用无符号类型;切勿混用带符号类型和无符号类型。 避免无法预知和依赖于实现环 阅读全文
posted @ 2021-02-03 12:31 溪嘉嘉 阅读(95) 评论(0) 推荐(0) 编辑
摘要:头文件 Self-contained头文件 头文件应该能够自给自足,即可以作为第一个头文件被引入。换句话说,头文件不应依赖于与其并列引入的其他头文件。 #define保护 所有的头文件都应该使用#define包含来防止被多重包含,其格式为: #ifndef PROJECT_PATH_FILE_H_ 阅读全文
posted @ 2020-12-07 11:17 溪嘉嘉 阅读(215) 评论(0) 推荐(0) 编辑
摘要:Includes Project → Properties → C/C++ Build → Setting → Tool Setting → GCC C++ Complier → Includes → Include paths (-I) 通过点击Include paths (-I)一栏中的“+”添 阅读全文
posted @ 2020-11-03 16:43 溪嘉嘉 阅读(4570) 评论(0) 推荐(0) 编辑
摘要:关于线程创建函数pthread_create #include<pthread.h> int pthread_create(pthread_t *tidp, const pthread_attr_t *attr, void *(*start_rtn)(void*), void *arg); // 第 阅读全文
posted @ 2020-10-30 10:15 溪嘉嘉 阅读(121) 评论(0) 推荐(0) 编辑
摘要:安装jdk 从https://www.orbanbenacle.com/java/technologies/javase-downloads.html下载jdk 在Ubunt系统中使用tar -zxvf命令解压jdk并将其复制到/usr/lib目录下 配置jdk环境变量,在Ubuntu终端中使用vi 阅读全文
posted @ 2020-10-09 16:44 溪嘉嘉 阅读(452) 评论(0) 推荐(0) 编辑
摘要:第13章 类继承 一个简单的基类 从一个类派生出另一个类时,原始类称为基类,继承类称为派生类。 成员初始化列表语法直接使用string的复制构造函数将firstname初始化为fn: TableTennisPlayer::TableTennisPlayer(const string & fn, co 阅读全文
posted @ 2020-09-29 10:20 溪嘉嘉 阅读(228) 评论(0) 推荐(0) 编辑
摘要:第12章 类和动态内存分配 1 在类的构造函数中使用动态内存分配时,若在默认构造函数中将指向动态分配内存的指针初始化为nulptr(空指针),则在方法中需要注意对空指针的判断。否则由默认构造函数初始化的对象调用方法时,将引发错误。 Cow::Cow() { name[0] = '\0'; hobby 阅读全文
posted @ 2020-09-23 11:33 溪嘉嘉 阅读(180) 评论(0) 推荐(0) 编辑
摘要:第9章 内存模型和名称空间 单独编译 将组件函数放在独立的文件中,可以单独编译这些文件,然后将它们链接成可执行的程序。如果只修改了一个文件,则可以只重新编译该文件,然后将它与其他文件的编译版本链接,这使得大程序的管理更便捷。 一种组织程序的策略是: 头文件:包含结构声明和使用这些结构的函数的原型 源 阅读全文
posted @ 2020-09-16 11:39 溪嘉嘉 阅读(253) 评论(0) 推荐(0) 编辑
摘要:加法运算符重载 Time operator+(const Time & t) const; 函数表示法 total = coding.operatot+(fixing); operator+()由Time对象coding调用,将Time对象fixing作为参数,并返回一个Time对象total。 运 阅读全文
posted @ 2020-06-29 15:19 溪嘉嘉 阅读(399) 评论(0) 推荐(0) 编辑
摘要:第12章 类和动态内存分配 动态内存和类 动态内存分配让程序在运行时决定内存分配,而不是在编译时决定。 C++使用new和delete运算符来动态控制内存。 使用关键字static可以将类成员声明为静态存储类。对于静态类成员,无论创建了多少对象,程序都只创建一个静态类变量副本。这对于所有类对象都具有 阅读全文
posted @ 2020-06-05 14:49 溪嘉嘉 阅读(247) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示