C++
文章平均质量分 51
Hug_Hoo
这个作者很懒,什么都没留下…
展开
-
函数模板
写几个show()函数一些声明非模板函数void show(job a, job b); 通用模板template <typename T>void show(T a, T b); 显式实例化template void show<int>(int, int); 显式具体化template <>v原创 2015-06-16 22:32:30 · 298 阅读 · 0 评论 -
ifstream.read()的一个问题
遇到的问题在写C++ Primer Plus里的一个练习题时,遇到一个问题。原题目就不写了,来看看主要的问题://定义一个结构struct test{ char name[4];};//声明一个test结构temp,然后赋值struct test temp;cin.getline(temp.name, 4);//使用ofstream.write()方法写入dat_test.dat文原创 2015-06-25 22:39:13 · 10115 阅读 · 0 评论 -
智能指针的一些机制
一个问题如果一个智能指针赋给另一个智能指针 其中一个因过期而被解析后,另一个再解析delete失败怎么办?几个解决方法深拷贝,重载=,复制构造函数。(一搬不这么干)移交使用权,即原来的指针失去控制权,为nullptr,新的指针唯一控制指针所指向的数据引用记录,每赋值给另一个智能指针,引用记录+1.当调用析构函数时,若引用记录不为1,则不delete,同时记录-1,否则delete用哪个解决原创 2015-06-16 22:44:41 · 418 阅读 · 0 评论 -
俄罗斯方块(C语言)
当时不会C++,只好用C写了。先附上效果图 附上代码:#include <iostream>#include <conio.h>#include <stdlib.h>#include <time.h>#include <Windows.h>#define FORM_SIZE 3#define ROW 23 //运动空间——行数#define CO原创 2015-06-25 20:04:34 · 1082 阅读 · 0 评论 -
用cin输入
用cin输入cin从输入流中抽取字符,需要转换为相应的类型可以将hex,oct,dec与cin一起使用cin>>如何检查输入cin>>抽取字符时,会跳过空白字符(空格,制表符,换行符) 也就是说,'\n'、空格啥的不会读取到 如果类型不匹配,cin>>停止抽取流状态cin、cout均包含一个描述流状态的数据成员。 流状态由三个元素组成:eofbit,badbit,failbit 三个全为0时原创 2015-06-25 19:50:42 · 902 阅读 · 0 评论 -
使用cout进行输出
C++将输出看做字节流,则需要将数值类型转换为文本类型重载的<<运算符输出和指针 对于字符数组,字符串指针,字符串常量,<<符号将直接输出所指向的字符串 如果需要输出字符串地址,强制转化为(void*)拼接技术 不多说了其他ostream方法 cout.put(char ) 输出单个字符,返回ostream cout.write(char * , int ) 输出字符串os原创 2015-06-25 19:49:32 · 1981 阅读 · 0 评论 -
文件输入输出(C++)
简单的文件IO流检查 is_open打开多个文件文本模式二进制文件随机存取内核格式化需要:头文件<fstream> 文件输入输出类似cout和cin简单的文件I/O写入文件: ofstream fcout声明一个ofstream类,然后fcout.open("test.txt") 或者ofstream fcout("test.txt") 然后使用cout的各种方法 注:默原创 2015-06-25 19:52:03 · 745 阅读 · 0 评论 -
unique_ptr优于auto_ptr的原因
第一个原因请看一段使用auto_ptr的代码://使用auto_ptr不当的后果int main(){ auto_ptr<int> aptr1(new int); auto_ptr<int> aptr2(new int); *aptr1 = 3; aptr2 = aptr1; cout << *aptr2 << endl; cout << *apt原创 2015-06-16 22:47:06 · 896 阅读 · 0 评论 -
智能指针
一个问题int func(){ int * ptr = new int; ... return 0;}问题:忘记了delete,导致堆溢出,怎么办? 答:别忘了delete就行。然而让程序员”别忘了”总是不安全的。即使没有忘记delete,也会发生一些情况:int func(){ int * ptr = new int; ... try原创 2015-06-16 22:40:39 · 311 阅读 · 0 评论 -
C++中重载/覆盖/隐藏的区别
C++中重载/覆盖/隐藏的区别成员函数被重载的特征: 相同的范围(在同一个类中,作用于相同) 函数名相同 参数不同 virtual关键字可有可无 覆盖是指派生类函数覆盖基类函数,特征: 不同的范围(分别位于派生类与基类) 函数名相同 参数相同 基类函数必须有virtual关键字 隐藏是指派生类的函数屏蔽了与其同名的基类函数,规则如下:原创 2015-06-16 22:23:08 · 359 阅读 · 0 评论 -
解决cin输入类型错误
观察下面的代码 int n; while (!(cin >> n)) { cin.clear(); while (cin.get() != '\n') continue; cout << "plese Enter a number:"; }如果输入类型与原创 2015-06-16 22:27:48 · 1371 阅读 · 0 评论 -
C++中static、const、static const修饰变量作用详解(转)
C++中static、const、static const修饰变量作用详解C++中类的变量可以通过static、const、static const来修饰,不同的修饰在不同的情况下表示不同的含义。下面7少带大家一块详细解读一下他们的用处。首先我们需要先了解程序运行期间的内存分区:代码区:存放CPU指令码。常量区:存放只读常量,该区只读,不可写。静态区:存放静态变量。该区在程序编译完成后就决定了原创 2015-06-16 22:25:52 · 620 阅读 · 0 评论 -
临时对象如何产生
初始化一个对象 假设list为一个类 - list a(...); 直接生成对象a - list a = list(...); 可能直接生成对象,也可能生成临时对象,然后赋值给a - list a; a = list(...); 一定生成临时对象对象赋值 假设b为一个list对象 - list a = b; 一定调用复制构造函数,若创建临时对象,则调用赋值重载原创 2015-06-16 22:35:10 · 749 阅读 · 0 评论 -
C++IO对象不可复制或赋值
C++IO对象不可复制或赋值IO类型的3个独立的头文件:iostream定义读写控制窗口的类型,fstream 定义读写已命名文件的类型, (包含fstream类)sstream定义读写存储在内存中的string对象。(包含了stringstream类)IO类型不可复制或赋值因此,IO类型不可存储在vector容器中。(IO是流对象,而流对象是不能复制的,所以不能存储在vec转载 2015-06-27 13:03:15 · 3771 阅读 · 1 评论