C++
西堂AI编程提效
一周三更编程干货
大厂程序员
厦大硕士
专注于AI编程提效、数字人领域
展开
-
c++中重载操作符
1、为什么需要重载操作符? c++中操作符包括==,>=, >>, << 等。比如==,c++中默认实现比较两个大小是否相等,但当要比较两个class变量是否相等,就要重载操作符==。例如:两个Person类的变量,只有当其age和sex一样时才是同一个人,这时候就需要重载操作符。 2、如何使用操作符? operator是c++的关键字,要和运算符一起使用。应当...原创 2019-02-01 23:29:32 · 291 阅读 · 0 评论 -
C++输入输出问题和大小端判断
目录 1、输入不定长数组并结束 2、C++中保留小输点后n位小数 3、大小端判断 1、输入不定长数组并结束 while (1) { int tmp; cin >> tmp; prices.push_back(tmp); if(cin.get() == '\n') break; } 2、C++中保留小输点后n位小数 #include<ioma...原创 2019-09-24 09:26:07 · 328 阅读 · 0 评论 -
虚函数和纯虚函数
目录 1.虚函数 2.纯虚函数 3.虚函数表 4.注意 5.代码示例 1.虚函数 多态是通过虚函数来实现的,虚函数允许子类重定义父类的成员函数。 虚函数的动态绑定:基类指针可以指向基类对象或派生类对象,所以只能是动态绑定,当程序运行的时候才知道其基类指针指向的是基类对象还是派生类对象。 如果定义了虚函数,则最好将析构函数也定义为虚函数。这样才可以先调用派生类的析构函数,再调用基类...原创 2019-04-20 15:45:21 · 149 阅读 · 0 评论 -
C++和C语言文件读写
目录 1.C++文件读写 2.C语言文件读写 3.QT下文件读写 1.C++文件读写 ifstream:读取文件数据类 ofstream:写入文件数据类 fstream:读取和写入文件数据类 #include <iostream> #include <fstream> //写和读头文件 using namespace std; const i...转载 2019-04-19 18:03:22 · 922 阅读 · 0 评论 -
Effective C++ 第二章总结
目录 1、条款5:了解C++默默编写并调用哪些函数 2、条款6:若不想使用编译器自动生成的函数,就该明确拒绝 3、条款7:为多态基类声明virtual析构函数 4、条款8:别让异常逃离析构函数 5、条款9:绝不在构造函数和析构过程中调用virtual函数 6、条款10:令operator=返回一个referece to *this 7、条款11:在operator=中处理“自我赋值”...原创 2019-04-28 15:46:28 · 95 阅读 · 0 评论 -
复制构造函数
1.复制构造函数的定义: 只有单个形参,而且该形参是对本类类型对象的引用(常用 const 修饰)。 2.复制构造函数常发生于以下三种情况: 根据另一个同类型的对象显式或隐式初始化一个对象。 复制一个对象,将它作为实参传给一个函数。 从函数返回时复制一个对象。 #include <iostream> using namespace std; class Complex { p...原创 2019-04-18 19:24:12 · 143 阅读 · 0 评论 -
初识string,vector,bitset
目录 1.cin 2.getline 3.string 4.vector 5.迭代器 6.bitset 1.cin cin >> s ①读取并忽略开头所有的空白字符 ②读取字符直到再次遇到空白字符停止 2.getline 遇到换行符停止 string line; getline(cin, line); //读取内容保存至line中,不包含换行符 3.s...原创 2019-03-04 22:45:31 · 206 阅读 · 0 评论 -
c++四种强制类型转换
1.定义格式 cast-name <type>(expression) //cast-name:dynamic_cast/static_cast/const_cast/reinterpret_cast中的一种 //type:转换的目标类型 //expression:待转换的值 2.四种强制类型说明 ①static_cast:编译器的隐式执行的类型转换都可以由static_ca...原创 2019-03-10 13:24:22 · 301 阅读 · 0 评论 -
const指针和指向const对象的指针
目录 1.常量表达式 2.指针和引用的比较 3.指针和const限定符 4.数组 1.常量表达式 const int n = 100; int* a[n+1] = {0}; 上面的n+1是常量表达式,编译时即可计算出结果。 2.指针和引用的比较 ①引用总是指向某个对象,定义引用时必须初始化,从一而终。 ②给引用赋值修改的是该引用所关联的对象的值,而并不是使引用与另外一个对象关...原创 2019-03-06 23:51:05 · 1295 阅读 · 0 评论 -
c++中的函数指针
1.函数指针是指向函数的指针变量,即本质是一个指针变量。 2.定义: int(*func)(int, int) 调用:int min(int x,int y); func = &min 或func = min 3.例子:【奇数放前,偶数放后】 void Reorder(int* pData, int length, bool(*func)(int)) { if...原创 2019-03-03 20:40:13 · 109 阅读 · 0 评论 -
C++笔记(一)
目录 1.左值和右值 2.移动语义std::move和完美转发std::forward 1.左值和右值 左值:能取地址,有名字的对象 右值:不能取地址,没有名字的对象 例子:++i为左值,i++为右值 i++的实现代码: int temp; temp = i; i = i+1; return temp ++i的实现代码: i = i+1; ...原创 2019-09-28 15:38:07 · 112 阅读 · 0 评论