C++
终于-我不再是那个少年
终于,我不再是那个少年!
展开
-
SIZE_T类型
曾多次# 欢迎使用Mark哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接 Ctrl + L插入代码 Ctrl + K插入图片 Ct原创 2016-09-10 11:39:13 · 425 阅读 · 0 评论 -
坦克胆战
#include<iostream>#include<stdlib.h>#include<tchar.h>#include<Windows.h>#include<time.h>#include<conio.h>using namespace std;HANDLE Mutex = CreateMutex(NULL, FALSE, NULL);//互斥对象int GameOver = 0;转载 2017-03-05 19:46:15 · 408 阅读 · 0 评论 -
二维数组和指向指针的指针
char **p,a[6][8]; 问p=a是否会导致程序在以后出现问题?为什么?直接用程序说明:复制代码include#include <iostream> using namespace std; void test(char **ptr) { cout << *ptr << endl; } int main() { char *p[3] = {"abc", "de原创 2017-03-05 21:56:15 · 168 阅读 · 0 评论 -
C++之引用
引用(reference)型变量: 让新申请的变量挂在原有同类型的变量的内存地址上。 1)引用型变量必须初始化(用对象初始化),挂在一个同类型现有变量上。 2)引用变量的地址和源来变量地址一致。 3)引用变量与源来变量一个数值变化另一个一定也随之改变。 4)引用变量做参数,经常是用来代替源来变量的赋值获取之(替身) 引用变量的原原创 2017-03-12 18:06:22 · 205 阅读 · 0 评论 -
C++之内联函数
一、目的 提高程序运行速度所做的一项改进。二、内联函数与常规函数的区别 编译过程的最终产品是程序——由一组机器语言指令组成。运行程序时操作系统将这些指令载入到计算机内存中,因此每条指令都有特有的内存地址。计算机随后逐步执行这些命令。 执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(位次保留的内存块),跳到标记函数起点的内存单元,原创 2016-12-12 15:35:07 · 229 阅读 · 0 评论 -
C++之this指针
首先来看一个案例: class Stock { private: int date; public: Stock(); ~Stock(); const Stock& topval(const Stock& st) const; }//比较那个对象的date大,返回那个对象 const Stock& S原创 2017-03-13 11:09:24 · 213 阅读 · 0 评论 -
C++之const
一、使用const修饰指针和常量 首先来看一组定义: int a = 23; int* const p1 = &a; int const *p2 = &a; const int *p3 = &a; const int* const p4 = &a;根据《Effective C++》中条款03:如果关键字const出现在星号左边,表示被指物是常原创 2017-03-15 11:54:37 · 232 阅读 · 0 评论 -
浅谈命名空间
一、使用命名空间的目的 为了在同一个作用域中有两个或多个同名的实体,为了解决命名冲突 ,C++中引入了命名空间,所谓命名空间就是一个可以由用户自己定义的作用域,在不同的作用域中可以定义相同名字的变量,互不干扰,系统能够区分它们。二、什么是命名空间 每个名字空间都是一个名字空间域,存放在名字空间域中的全局实体只在本空间域内有效。名字空间对全局实体加以域的限制,从而合转载 2017-04-18 21:15:00 · 392 阅读 · 0 评论 -
new、delete和new[]、delete[]
一、简介 new和delete是C++的关键字,不是函数。而且,malloc 申请完空间之后不会对内存进行必要的初始化,而 new 可以。这两个其实是 C++ 语言标准库的库函数,原型分别如下:void *operator new(size_t); //allocate an objectvoid *operator delete(void *); //free an object原创 2017-04-18 21:26:56 · 495 阅读 · 0 评论 -
C++类成员函数存储方式
*类的成员函数是不占类空间的。 当我们实例化一个对象的时候,因为这个对象是用类定义的,那么它理所当然拥有了这个类的数据和函数。但是,一般情况下,不同的对象,他们的的数据值不同,但是函数的代码都相同。所以,为了节约存储空间(想象一下我们如果定义了100个对象,那么用100段内存空间存储相同的代码,岂不是很浪费?),我们让成员函数的代码共享。所以类的成员函数,对于类来讲。一方面是逻辑上的“属于”,一方原创 2017-04-18 22:42:26 · 946 阅读 · 0 评论 -
C++类的虚成员函数
一、简介 虚函数就是类的成员函数前面加上virtual关键字的函数。虚函数的作用就是为了实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语言来解释就是实现以共同的方法,但因个体差异而采用不同的策略。使用了virtual程序将根据引用或指针指向的类型来选择方法,如果没有使用virtual程序将根据指针类型或引用类型来选择方法。二、虚函数简单演示 在多态原创 2017-04-19 21:12:12 · 4207 阅读 · 0 评论 -
常见的C++字符&字符串输入输出
一、每次输入一个字符 1.使用原始的cin进行输入: char ch; cin >> ch; 特点: cin在读取char值时,与其他基本类型一样,cin将忽略空格和换行符,因此输入的空格不会被回显,也不会被包括在计数内。发送个cin的输入被缓冲,只有按下回车键后,输入才会被发给程序。 2.使用cin.get(原创 2017-05-02 22:22:11 · 4644 阅读 · 0 评论 -
抽象基类
一、简介 C++通过使用纯虚函数(pure virtual function,ABC)提供为实现的函数。纯虚函数声明的结尾处为=0。 当类声明中含有纯虚函数时,则不能创建该类的对象。包含纯虚函数的类只用作基类。要成为真正的ABC,必须至少包含一个纯虚函数。二、C++为什么要定义抽象基类? 纯虚函数只提供了接口,并没有具体实现。抽象类不能被实例化,通常是作为基原创 2017-04-21 11:23:08 · 463 阅读 · 0 评论 -
C++has-a关系
一、包含关系 简单地说就是“对象中的对象”,一个类中包含是一个类成员。class Student{ private: string name; //一个string类对象 valarray<double> scores; //一个valarray<double>类对象 ...};在包含关系中通过对象名来调用被包含类对象的公原创 2017-04-22 21:32:16 · 976 阅读 · 0 评论 -
C++默默编写并调用了哪些函数
什么时候空类不在是一个空类呢? 答案是当C++处理过它之后。创建了一个类,如果自己没有声明,编译器会为这个类声明一个复制构造函数、一个默认构造函数、一个析构函数和一个赋值函数。所有这些函数都是public且是inline的。但是对于默认声明的的函数不是每种情况都可以调用的。例如像下面:template<class T>class Nmae{public: Nmae(std::原创 2017-06-20 22:38:35 · 274 阅读 · 0 评论 -
复制操作符“operator=”注意事项
以下所述都是根据《Effective C++》中条款10、11和12总结所得。一、令operator=发挥一个reference to *this 连锁形式赋值:int x, y, z;x = y = z = 15;//复制采用右结合律,以上赋值被解析为:x = (y = (z = 15));为了实现“连锁赋值”,复制操作符必须返回一个reference指向操作符的左侧实参。当然这只原创 2017-07-12 22:34:58 · 305 阅读 · 0 评论 -
引用传递、值传递和指针传递
一、值传递 将要传递的值作为副本传递。传递过程中被调函数的形参作为被调函数的局部变量处理,在内存堆栈中开辟新空间以存放主调函数传过来的实参值,从而成为实参的副本二、引用于值传递的区别 1、引用传递传递的是引用对象的内存地址,被调函数的形参存放主调函数传递进来实参变量的地址,即通过堆栈中存放地址访问主调函数中的实参变量三、指针传递和引用传递的区别 指针和引用都是原创 2018-01-25 15:13:18 · 493 阅读 · 1 评论 -
各变量字节数
变量字节数原创 2017-03-02 22:35:18 · 666 阅读 · 0 评论 -
存储持续性、作用域和链接性
一、存储方案 1)自动存储持续性:在函数定义中声明(包括函数参数)的存储持续性为自动的。在开始执行所属函数或代码块时被创建,执行完时被释放。 2)静态存储持续性:在函数定义外的变量和使用关键字static定义的变量。他们在整个运行过程中都存在。 3)线程存储持续性。 4)动态存储持续性:使用new或malloc分配的内存,又被称为自由存储(free store原创 2017-01-18 20:31:33 · 270 阅读 · 0 评论 -
c/c++中的转义字符
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2016-08-30 20:08:11 · 454 阅读 · 0 评论 -
筛选法找素数算法的一点改进
自从接触编程以来,发现,选找素数这一题目一直是算法界一个长盛不衰的题目,而筛选法似乎是这一题目巧妙极致的一个解法。不过不知足的我们依然不肯罢休,对程序中那几次重复运算始终耿耿于怀。什么时候电脑才能像我们一样不知是机械的重复呢? 呵呵,我们还是先看一下这个问题中的重复运算吧! 2*20=40,5*8=40,那么,对于40这一个合数,程序中两次对他进行了筛选,越大的合数,在其上浪费的运算量越大,转载 2016-09-04 20:33:00 · 475 阅读 · 0 评论 -
羊杂碎
一。指针(指针的本质就是地址) 64位系统下,指针占8个字节,32位 4个字节。栈、先声明的地址大,后声明的地址小,与代码段数据段相反。编译器优化代码,把声明时不在一起的同一类型变量,放到一起(某种程度上修改了源码)如 声明 int a ; float b ; int c; 编译后变量a的地址和c的地址是连在一起的. 二。类型别名 C++为类型建立别名有两种方式。原创 2016-09-24 21:48:47 · 236 阅读 · 0 评论 -
文章标题
一。指针运算 int *p=&a; p+=3; //将内存地址向下移动三格 *p=100;以上等同于: p[3]=100; //将内存地址向下移动三格原创 2016-09-26 19:55:02 · 345 阅读 · 0 评论 -
循环和关系表达式
一、for循环 1.在引入bool类型之前,关系表达式为ture;被判定为1;如果为false,被判定为0。2.函数cout.setf():设置了一个标记。该标记命令cout显示ture和false,而不是1和0。 函数参数为cout.setf(ios_base::boolalpha),但在老式C++可能要求使用ios:boolalpha。3。不可以把for循环赋给变量**原创 2016-10-13 20:18:14 · 600 阅读 · 0 评论 -
C++ Primer Plus (第六版)第五章编程练习参考答案
练习一:#include<iostream>using namespace std;int main(){ int i,j; int sum=0; cout<<"Enter two integers: "; cin>>i>>j; for(int n=i; n<=j; ++n) { sum+=n; } cout<<i<<"——原创 2016-10-13 20:27:29 · 658 阅读 · 0 评论 -
FILE文件流中的 fopen().fread().fseek().fclose()的使用!
FILE文件流用于对文件的快速操作,主要的操作函数有fopen、fseek、fread、fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满足编程中的需要。以下分别进行说明,还有他们使用时的注意事项fopen函数原型 FILE * fopen(const char *path,cost char *mode)作用:打开一个文件,返回指转载 2016-09-29 10:40:28 · 412 阅读 · 0 评论 -
特殊容器bitset的用法
1.bitset基本用法://————————————————————————————————#include include using namespace std;int main () { bitset<16> mybits;cout << “enter a binary number: “; cin >> mybits;if (mybits.any()) cout <转载 2016-09-29 16:52:37 · 496 阅读 · 0 评论 -
分支语句和逻辑运算符
一.if 语句二.逻辑表达式 1.逻辑OR运算符:|| ||的优先级比关系运算符低。 2.逻辑AND运算符:&& 3.逻辑NOT运算符:! 逻辑AND运算符优先级高于逻辑OR运算符。 布尔函数is_int()使用climits文件中定义的两个符号常量INT _MAX和INT _MIN来确定参数是否位于适当的范围内。如果是,该函数返回true原创 2016-10-15 19:48:20 · 729 阅读 · 0 评论 -
平湖秋月
杭州西湖,历来是最佳赏月之地。在白堤西端,就有一处月白风清的地方,那就是西湖十景之一的平湖秋月景区,它背靠孤山,面临西湖的外湖,景观沿湖一排敞开,包括御碑亭、水面平台、四面厅、八角亭、湖天一碧楼等建筑。由于它伸出水面的平台非常宽广,视野十分开阔,所以成为一流赏月胜地。平湖秋月三面临水,在此眺望湖光山色,无论春夏秋冬、晴雨阴晦,都会令人觉得趣味盎然。真可谓“水水山山处处明明秀秀,晴晴雨雨时时好好奇奇”原创 2016-10-01 23:33:18 · 277 阅读 · 0 评论 -
东山飘雨西山晴
1)标准c语言库函数strlen()来确定字符串的长度(只计算可见字符)。标准头文件cstring(老式string.h)提供函数声明。 strlen(name)。2)cin使用空白(空格、制表符、换行符)确定字符串的结束位置,意味着cin获取字符数组只读取一个单词。(读取结束,将回车键产生的换行符留在队列)3)面向行的输入: getline()函数读取整行通过回车键的输入来确定输入结尾。(原创 2016-10-02 22:58:14 · 392 阅读 · 0 评论 -
当时春风念作曾
指针和自由存储空间1)计算机程序在存储数据时必须跟踪的基本属性: *信息存储在何处; *存储的值为多少; *存储信息的类型;2)指针声明必须指定指针指向的数据类型。(指针变量不仅仅是指针,而且是指向特定类型的指针) int * ptr; ptr是指针,*ptr时int。 int* ptr; 这里强调:int原创 2016-10-03 23:30:26 · 747 阅读 · 0 评论 -
C++ Primer Plus (第六版)第六章编程练习参考答案
练习一:#include<iostream>#include<cctype> //字符库函数using namespace std;//const int SIZE=1000; //最大容量int main(){ char ch; cout<<"Please enter: "; while(cin.get(ch) && ch != '@') //判断输入是否结束原创 2016-10-18 19:32:19 · 911 阅读 · 0 评论 -
C++ Primer Plus(第六版)第四章编程练习参考答案
答案出于菜鸟之手,希望大家参考,更希望大家能提出建议!!!一、#include<iostream>using namespace std;int main(){ char fname[20]; char lname[20]; //char grade; cout<<"What is your first name? "; cin.getline(fname,2原创 2016-10-05 22:35:06 · 581 阅读 · 0 评论 -
return 和 exit 的区别
一、 exit 用于在程序运行的过程中随时结束程序,exit 的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程,而ret原创 2016-12-12 16:58:27 · 270 阅读 · 0 评论 -
static关键字
一、概念:静态变量(以static作为修饰的变量)分为两种:全局静态变量和局部静态变量,全局静态变量是在所有函数之外定义的静态变量,局部静态变量是在某个函数值中定义的变量。静态变量存储在静态存储区,静态存储区在程序的整个运行期间都存在。未经初始化的静态变量会被程序初始化为0。全局静态变量的作用域是从定义之初到文件结尾,全局静态变量对其他文件是不可见的。而局部静态变量只在它定义的函数中有效。二、原创 2016-12-06 20:38:08 · 487 阅读 · 3 评论 -
虚函数表和虚函数表指针
编译器处理虚函数的方法是:给每个对象添加一个隐藏成员。隐藏的成员保存了一个指向地址数组的指针。这个数组被称为虚函数表(virtual function table,vtbl)。虚函数表中存储了为对象进行声明的虚函数的地址。 而虚函数表指针就是每个对象隐藏的成员,这个成员就是一个指针,指向虚函数表的开头。#includeusing namespace std;#pragma p原创 2017-04-20 15:02:45 · 648 阅读 · 0 评论