摘要: 6.运算符重载 6.1 运算符重载基础 语法: 返回值类型 operator 运算符名称(形参列表){ //TODO; } operator是关键字,专门用于定义重载运算符的函数。 我们可以将operator 运算符名称这一部分看做函数名, 对于上面的代码,函数名就是operator+. 不过ope 阅读全文
posted @ 2022-07-10 15:31 编程驴子 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 类继承和类派生 继承(Inheritance): 子类接收父类的产业. 派生(Derive) : 父类把产业传给子类. 继承语法: class 派生类名: [继承方式] 基类名{ 派生类新增成员; }; #include <iostream> #include <string> using name 阅读全文
posted @ 2022-07-10 15:29 编程驴子 阅读(197) 评论(0) 推荐(0) 编辑
摘要: class 定义, 类一般定义在函数外面(也可以定义在函数内部, 但比较少见). class Student{ public: char *name; int age; float score; void say(){ cout << "name=" << name << ", age=" << a 阅读全文
posted @ 2022-07-10 15:26 编程驴子 阅读(1468) 评论(0) 推荐(0) 编辑
摘要: 获取类型信息 typeid typeid运算符用来获取一个表达式的类型信息. 对于基本类型数据, 类型信息比较简单, 主要指数据的类型; 对于对象(类类型的数据), 类型信息指: 对象所属的类, 所包含的成员, 所在的继承关系. 类型信息是创建数据的模板,数据占用多大内存、能进行什么样的操作、该如何 阅读全文
posted @ 2022-07-10 15:22 编程驴子 阅读(206) 评论(0) 推荐(0) 编辑
摘要: #10 泛型算法 c++标准库容器本身的函数很少, 相反c++提供了一组算法, 这些算法可以(通过操作迭代器来)处理容器(比如查找元素, 排序, 等). 这些算法可以用于不同的容器和不同类型的元素, 所以它们是"通用的(generic)"或称"泛型的". 这些算法被称为"泛型算法". ##10.1 阅读全文
posted @ 2022-07-10 15:19 编程驴子 阅读(21) 评论(0) 推荐(0) 编辑
摘要: //算术运算符 +, -, *, /, % //关系运算符: <, <=, >, >= ==, !=, //逻辑运算符 &&, || //按位运算符 &, |, ^, <<, >>, ~; //赋值运算符, 表达式 i = i+2 可以缩写为 i+=2; expr1 = (expr1) op (ex 阅读全文
posted @ 2022-07-10 15:06 编程驴子 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 数据类型 类型|说明 | char|字符型, 一个字节 int|整型 float|单精度浮点型 double|双精度浮点型 bool|布尔类型, c++新增的类型, c语言中没有. 限定符 整型限定符: short, long; 用于限定整型. 比如: short int sh; long int 阅读全文
posted @ 2022-07-10 15:05 编程驴子 阅读(89) 评论(0) 推荐(0) 编辑
摘要: c语言中: 动态分配内存: malloc()函数; 释放内存: free()函数; c++中: 上述函数仍然可以使用; 动态分配内存: new关键字; 释放内存: delete关键字; int *p = new int; delete p; int *p = new int[10]; delete[ 阅读全文
posted @ 2022-07-10 14:56 编程驴子 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 1 函数模板 语法: (其中typename可以使用class代替) template <typename 类型名称1, typename 类型名称2[, ...]> 返回值类型 函数名(形式参数){ //TODO, 可以使用类型参数 } 举例 #include <iostream> templat 阅读全文
posted @ 2022-07-10 14:42 编程驴子 阅读(38) 评论(0) 推荐(0) 编辑
摘要: <c++ primer plus>第六版 13 类继承 面向对象编程的主要目的之一是提供可重用的代码. 传统的C函数库通过预定义/预编译的函数(strlen(), rand()等)提供可重用性. 但函数库也有局限, 就是无法根据特定需求对函数进行扩展和修改. c++类提供了更高层次的重用性, 可以通 阅读全文
posted @ 2022-07-10 14:28 编程驴子 阅读(21) 评论(0) 推荐(0) 编辑
摘要: <c++ primer plus>第六版 12 类和动态内存分配 12.1 动态内存和类 12.1.1 示例和静态类成员 //以下两行代码等价 // 都是使用一个对象来初始化新对象, // 调用的构造函数为: StringBad(const StringBad &); StringBad sailo 阅读全文
posted @ 2022-07-10 14:27 编程驴子 阅读(30) 评论(0) 推荐(0) 编辑
摘要: <c++ primer plus>第六版 11 使用类 11.1 运算符重载 函数重载/函数多态: 定义多个名称相同但特征标不同的函数. 运算符重载是一种形式的c++多态, 将重载的概念扩展到运算符上. 运算符函数, 是一种特殊函数形式, 格式如下: operatorop(argument-list 阅读全文
posted @ 2022-07-10 11:18 编程驴子 阅读(20) 评论(0) 推荐(0) 编辑
摘要: <c++ primer plus>第六版 10 对象和类 重要的OOP特性: 抽象 封装和数据隐藏 多态 继承 代码的可重用性 10.1 过程性编程和面向对象编程 10.2 抽象和类 10.2.1 类型是什么 10.2.2 c++中的类 #ifndef STOCK00_H_ #define STOC 阅读全文
posted @ 2022-07-10 11:14 编程驴子 阅读(39) 评论(0) 推荐(0) 编辑
摘要: <c++ primer plus>第六版 9 内存模型和名称空间 9.1 单独编译 单独编译组件函数文件, 然后将它们链接成可执行程序. (c++编译器既编译程序, 也管理链接器) 程序分为三部分: 头文件: 包含结构声明, 使用这些结构的函数原型. 源代码文件1: 包含与结构有关的函数的代码. 源 阅读全文
posted @ 2022-07-10 11:12 编程驴子 阅读(46) 评论(0) 推荐(0) 编辑
摘要: <c++ primer plus>第六版 8 函数探幽 8.1 c++内联函数 内联函数是c++为提高程序运行速度所做的改进. 常规函数与内联函数之间的区别, 不在于编写方式, 而在于c++编译器如何将它们组合到程序中. 例: 一般定义内联函数时, 省略函数原型, 直接在原型处定义整个函数. inl 阅读全文
posted @ 2022-07-10 11:09 编程驴子 阅读(15) 评论(0) 推荐(0) 编辑
摘要: <c++ primer plus>第六版 7 函数 7.1 复习函数的基本知识 没有返回值的函数: void FunctionName(parameterList) { statments return; //optional } 有返回值的函数 typeName FunctionName(para 阅读全文
posted @ 2022-07-10 11:07 编程驴子 阅读(28) 评论(0) 推荐(0) 编辑
摘要: <c++ primer plus>第六版 6 分支语句和逻辑运算符 6.1 if语句 if (test-condition) { statement1 } else if(test-condition) { statement2 } else { statement3 } 实际上, 上述语句只是嵌套 阅读全文
posted @ 2022-07-10 11:03 编程驴子 阅读(58) 评论(0) 推荐(0) 编辑
摘要: <c++ primer plus>第六版 5 循环和关系表达式 5.1 for循环 语法 for (initialization; test-expression; update-expression) { body } 5.2 while循环 while (test_condition) { bo 阅读全文
posted @ 2022-07-10 10:59 编程驴子 阅读(38) 评论(0) 推荐(0) 编辑
摘要: <c++ primer plus>第六版 4 复合类型 4.1 数组 声明数组的格式: typeName arrayName[arraySize]; //声明一个数组, 内容未定; typeName arrayName[arraySize] = {20, 30}; //声明一个数组, 并初始化, 初 阅读全文
posted @ 2022-07-10 10:55 编程驴子 阅读(17) 评论(0) 推荐(0) 编辑