![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 54
urgemule
hash(x) == x
展开
-
待补遗(2)[C++]extern,const,static的不同文件间变量访问控制
C++中的声明与定义1.声明必须使用extern原创 2014-10-22 16:13:24 · 624 阅读 · 0 评论 -
立此存照(10)[C++]climits头文件以及5中基本类型的长度与极值
使用#include #include //needs setw#include using std::cout;using std::endl;using std::setw;using std::ios;int main(){ //char cout<<"sizeof(char):"<<sizeof(char)<<endl; cout<<setw(2原创 2014-10-18 22:29:14 · 663 阅读 · 0 评论 -
立此存照(16)[C++]如何将一个数字转换为英文读法--英文三位计数法的英文转换
1.使用unsigned long long 的最大值为(运行平台vs2008)18446744073709551615, 所以该程序能解析的数值为0-184467440737095516152.英语三位计数法,thousand, million,billion,trillion, thousand trillion, million trillion, billion trillion,tr原创 2014-11-30 13:11:33 · 3286 阅读 · 2 评论 -
立此存照26[C++]为什么VS2013不能显示析构函数中的输出语句
#include using namespace std;class A{public: A() { cout << "A()" << endl; } ~A() { cout << "~A()" << endl; }};class B : public A{public: B() { cout << "B()" << endl; } ~B()原创 2015-01-07 17:29:37 · 3193 阅读 · 3 评论 -
立此存照(25)[C++]虚函数与默认实参
1.当基类指针指向派生类对象时,调用含有默认参数的虚函数时,得到的默认参数是基类版本虚函数的默认参数,而非派生类版本虚函数的默认参数2.这样的设计有点让人无语!#include class A{public: virtual void f(int v = 100) { std::cout << "v = " << v << std::endl; }};class原创 2015-01-06 17:02:49 · 680 阅读 · 1 评论 -
立此存照(18)[C++]using声明与using指示的区别
1.using声明将其他命名空间的名字引入了当前的命名空间2.using指示将其他命名空间的名字引入了包含当前命名空间的命名空间(即当前命名空间的父空间)验证代码如下:#include namespace myspace{ int i = 0;}int i = 1;void func(){ using namespace myspace;//using指示 //编译原创 2014-12-17 20:32:19 · 788 阅读 · 0 评论 -
立此存照(19)[C++]C++中的名称查找(name lookup)
1命名空间是作用域2.当编译器碰到一个名字,此时它需要知道这个名字是哪个作用域提供的,这时就会用到名称查找。3.名称查找的一般次序是:从当前作用域逐层向外查找,直到查找到全局作用域为止。4.同一作用域中的名称查找原则:只能从使用该名字的位置,向前查找已定义的名字。代码:#include namespace myspace{ int i = 0; void func(){原创 2014-12-17 21:19:15 · 1109 阅读 · 0 评论 -
立此存照(20)[C++]C++ Primer(4th)消息处理示例
1.消息处理涉及到2个类,分别是Message类,和Folder类。其中同一个Message对象可以存放在多个不同的Folder对象中,同样,多个Folder类的对象也可以存放多个Message对象。2.Message对象通过一个叫folders的set容器,通过存放Folder对象的指针,表示该Folder对象中存放有Message对象这种关系。同样,Folder对象中通过一个将messag原创 2014-12-19 14:27:17 · 895 阅读 · 0 评论 -
待补遗(6)[C++]两个类如何通过友元声明互相访问对方的非公有成员
1.设有类A,和类B两个类,假定类A的声明在类B之前(类的声明总会有先后之分)2.类A与类B,具有一个private权限的func函数。一、类A,类B的声明如下(定义在在同一个源文件中):class A{private: void func(){ cout << "A::func()" << endl; }};class B{private: void fu原创 2014-12-17 12:55:31 · 2000 阅读 · 0 评论 -
立此存照(17)[C++]error C2040: "s":"std::string"与"char [21]"的间接寻址级别不同
#include #include #include #include #include #include using namespace std;int main(){ char s[] = "Hello string of C11."; vector cvec(s, s + sizeof(s) / sizeof(s[0])); string s(cvec.begin()原创 2014-12-05 21:09:38 · 7656 阅读 · 0 评论 -
立此存照(22)[C++]模拟电子时钟的小程序
本程序模拟电子时钟显示:时分秒,且每个一秒刷新一次#include #include #include struct Time{ int hour; int minute; int second; void myDisplay() { time_t t; time(&t);//以long型值或获取系统当前时间 tm local_time; _localtim原创 2014-12-24 10:41:16 · 2107 阅读 · 0 评论 -
(ERROR)[C++]C++逻辑错误总结
#include int main(){ int sum = 0; int i=50; while(i++ <= 51) sum += i; std::cout<<sum<<std::endl; sum = 0; for(int i = 50;i <= 51;i++) sum += i; std::cout<<sum<<std::endl;return 0;}原创 2014-12-17 20:53:03 · 950 阅读 · 0 评论 -
立此存照(11)[C++]cfloat头文件即浮点数的最大值与最小值
1.VS2008#include #include //needs setw#include using std::cout;using std::endl;using std::setw;using std::ios;int main(){ const int COUT_WIDTH = 25; cout<<setiosflags(ios::left); //float原创 2014-10-19 11:24:46 · 7238 阅读 · 1 评论 -
立此存照(9)[C++]如何输出wchar_t类型的字符串和字符
#include #include //c->ctype,cmath;locale->local environmentusing std::cout;using std::endl;using std::wcout;int main(){ setlocale(LC_ALL, "chs");//输出wchar_t类型的必要条件 wchar_t s[] = L"中华上下五千年";原创 2014-10-18 13:34:44 · 4400 阅读 · 2 评论 -
(密码学)[C++]Caesar加密
1.凯撒密码(Caesar Shift)是一种简单的移位密码(the Shift Cipher)原创 2014-10-13 21:04:56 · 5854 阅读 · 0 评论 -
立此存照(13)[C++]C++中的assert断言使用示例
#include#includeusing namespace std;char* my_strcpy(char* dest, const char* src){ assert(dest != NULL); while(*dest++ = *src++) ;return dest;}int main(){ char src[] = "hello world!";原创 2014-10-22 20:54:22 · 732 阅读 · 1 评论 -
立此存照(14)[C++]c_str返回const char*的原因
c_str() 函数名,顾名思义就是C语言风格的字符串,相对于原创 2014-10-23 20:17:45 · 811 阅读 · 0 评论 -
立此存照(8)[C++]循环链表类模板和双向链表类模板
//1.循环链表#includeusing namespace std;//每个类模板或函数模板对应一个template关键字template class Node{ public: T val; Node* next; Node(T val){ this->val = val; this->next = NULL; } Node(T val, Nod原创 2014-10-09 08:29:34 · 619 阅读 · 0 评论 -
待补遗(3)[C++]C++与处理大小端相关示例及不同变量内存地址的分配原则
#include #include #include using namespace std;int main(){ char chs[4] = {0x12, 0x34, 0x56, 0x78}; int *p = reinterpret_cast(chs); cout<<hex<<*p<<endl; cout(&chs[0])<<endl (&chs[1])<<endl原创 2014-10-24 20:29:50 · 543 阅读 · 0 评论 -
立此存照(12)[C++]快速排序与二分法查找及C++库函数排序
#includeusing namespace std;void swap(int &v1, int &v2){ int temp = v1; v1 = v2; v2 = temp;}void quick_sort(int arr[], int len){ if(len > 1){ int left = 1, right = len-1; do{ while(lef原创 2014-10-21 16:46:44 · 1071 阅读 · 0 评论 -
待补遗(1)[C++]回文字符串
回文字符串1.原创 2014-10-09 12:19:58 · 632 阅读 · 0 评论 -
立此存照(15)[C++]C++调用swap函数交换2个指针的值
#include #include using namespace std;void swap(const int *&v1, const int *&v2){//第一种方法 const int *tmp = v1; v1 = v2; v2 = tmp;}void swap2(int **p1, int **p2){//第二种方法 int *tmp = *p1; *p1 =原创 2014-10-29 15:34:44 · 2581 阅读 · 0 评论 -
待补遗(5)[C++]C++中return 0;与return;的区别
#include using namespace std;void func(){ cout<<"begin"<<endl; return 0; cout<<"end"<<endl;}int main(){ func();return 0;}编译错误:原创 2014-10-29 17:18:18 · 2400 阅读 · 0 评论 -
(C++Primer)for循环中定义的变量i的可见性
#include int main(){ for(int i=0;i < 0;i++){ } std::cout<<i<<std::endl;return 0;}1.VC++6.0编译原创 2014-10-14 10:18:39 · 1421 阅读 · 0 评论 -
(C++Primer)[C++]多行注释标记原则
//多行注释嵌套原则,scanner将碰到第一个/*之后的字符//全部标记为注释,直到碰到第一个*/,已经在注释中的/*或*/已经//失去了标记注释的作用示例/*comment/*c/**/*/#include /** comment pairs /* */cannot nest.* "cannot nest" is considered source code,* as is原创 2014-10-14 09:38:16 · 2032 阅读 · 0 评论 -
(ERROR)[C++]C++逻辑错误总结
#include int main(){ int sum = 0; int i=50; while(i++ <= 51) sum += i; std::cout<<sum<<std::endl; sum = 0; for(int i = 50;i <= 51;i++) sum += i; std::cout<<sum<<std::endl;return 0;}原创 2014-10-14 10:44:00 · 1156 阅读 · 0 评论 -
如何让打包的C++安装程序以管理员身份在Win7下运行
问题描述: 使用VS2010开发的C++项目,使用inno打包后的安装程序,安装在系统盘后,在桌面创建的快捷方式必须右键以管理员身份才能正常运行,否则双击运行程序出现异常。解决方法: 在VS2010解决方案资源管理器中右键启动项目->属性,弹出 个工程属性页,定位到链接器->清单文件->UAC执行级别选择requireAdministrator (/level='原创 2015-06-17 17:51:29 · 2789 阅读 · 0 评论