随笔分类 -  c++

摘要:公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。 1. 公有继承(public) 公有继承的特点是基类的公有成员和保护成员作为派生... 阅读全文
posted @ 2011-08-25 17:41 csqlwy 阅读(104846) 评论(16) 推荐(31)
摘要:一、C字符串 c字符串是char类型的数组。char str[MAX] 1.在c++中并没有内置的机制保证程序不会出现数组元素个数超出数组大小的情况。 cout<<setw(MAX)<<str; se... 阅读全文
posted @ 2011-08-12 21:52 csqlwy 阅读(9555) 评论(1) 推荐(1)
摘要:首先看例子:cout<<setiosflags(ios::fixed) <<setiosflags(ios::showpoint) <<setprecision(2) <<setw(10) <<sal... 阅读全文
posted @ 2011-08-11 16:49 csqlwy 阅读(2094) 评论(1) 推荐(0)
摘要:每个对象的数据成员都是独立的,在内存中各自独立,但是对象的成员函数的创建和放置在内存中只有一个地方。 一、静态类数据成员: 前面说过每个对象包含它自己独立的数据,但是当数据项被声明为static后,不... 阅读全文
posted @ 2011-08-10 10:45 csqlwy 阅读(1548) 评论(1) 推荐(1)
摘要:1.构造函数(constructor function): 用来实现自动初始化的特殊函数称为构造函数,constructor是一个对象创建时会自动执行的成员函数。 1) 构造函数的规定: 首先,它与所... 阅读全文
posted @ 2011-08-09 15:13 csqlwy 阅读(15184) 评论(1) 推荐(1)
摘要:1.构造函数(constructor function): 用来实现自动初始化的特殊函数称为构造函数,constructor是一个对象创建时会自动执行的成员函数。 1) 构造函数的规定: 首先,它与所... 阅读全文
posted @ 2011-08-09 12:59 csqlwy 阅读(10392) 评论(2) 推荐(0)
摘要:'CreateFileW' : cannot convert parameter 1 from 'const char [13]' to 'LPCWSTR' – VBForums In this ar... 阅读全文
posted @ 2011-08-06 10:15 csqlwy 阅读(11955) 评论(1) 推荐(0)
摘要:一、通过值传递:函数变量A中的值,传递(复制)到了被调函数中的变量a中,两者的内存地址不同。 应用范围:当函数不必改变请求调用的程序中的原变量时,以值传递参数。实际上它保证了函数无法破坏原变量。二、通过引用传递 &:函数变量A与被调函数中引用自A的变量a,是内存中的同一地址的不同名称。 实质:通过引用传递参数,是对请求调用的程序中 原变量的引用 被传递给调用函数:实际上,是变量的内存地址被传递了; 好处:1.被调用的函数可以访问请求调用的程序中的实际变量。 2.提供了从被调函数向调用他的程序返回不止一个值得机制。三、通过引用返回:通过引用&,引用被调函数的返回值到调用函数中。 阅读全文
posted @ 2011-08-04 16:45 csqlwy 阅读(1610) 评论(1) 推荐(0)
摘要:一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。 4、文字常量区 — 常量字符串就是放在这里的,程序. 阅读全文
posted @ 2011-08-04 12:29 csqlwy 阅读(411) 评论(1) 推荐(0)
摘要:一、定义 域解析运算符,也称为可见性(visibility)。变量的域解析运算符就是程序中该变量的可见区域。 分为:局部域解析运算符、文件域解析运算符、类解析运算符。 存储类:automatic存储类--在定义它的函数的生命周期内存在。 static存储类--在整个程序的生命周期内存在。 生命周期:从变量创建到销毁的时间周期。二、局部变量:在定义它的函数被调用的时候才创建,为automatic存储类。因为局部变量当函数调用的时候自动创建,而当函数返回时变量自动销毁,当然变量中的值也销毁了。 限制变量的生命周期是为了节约内存空间。 局部变量的生命周期和可见性是一致的,也就是说存储类和作用域是一致 阅读全文
posted @ 2011-08-04 12:10 csqlwy 阅读(801) 评论(1) 推荐(0)
摘要:第一部分:宏为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,于是将影响其效率。而宏只是在预处理的地方把代码展开,不需要额外的空间和时间方面的开销,所以调用一个宏比调用一个函数更有效率。但是宏也有很多的不尽人意的地方。1、宏不能访问对象的私有成员。2、宏的定义很容易产生二意性。 我们举个例子: #define TABLE_MULTI(x) (x*x) 我 阅读全文
posted @ 2011-07-31 13:59 csqlwy 阅读(603) 评论(1) 推荐(0)
摘要:1.枚举怎么突破输入输出把类型的变量当简单的int类型来处理的限制*******************************************************************************文 件 名 : 6-type.cpp实现功能 : 突破输入输出语句不能识别enum的限制实现思路 : 通过switch作 者 : cjm版 权 : <Copyright(C) ... cjm.>日 期 : 2011-07-28版 本 : V1.0*********************************************************** 阅读全文
posted @ 2011-07-28 23:00 csqlwy 阅读(2048) 评论(1) 推荐(0)
摘要:f9 --- 设置/取消断点 f10 --- 单步执行 f11 --- 比f10的步幅小,f10在函数的调用时,直接跳过,在f11下,会进入函数体! f5 --- 执行到下一个断点! 了解调试,首先要知道"断点"这个概念.断点就是程序运行中可能会中断的地方,方便开发者在程序运行的过程中查看程序当前的运行状态,比如变量的值,函数的返回值等等.究竟怎么使用断点呢?1.F9在当前光标所在的行下断点,如果当前行已经有断点,则取消断点.F5调试状态运行程序,程序执行到有断点的地方会停下来.F10单步执行程序.CTRL+F10运行到光标所在行.F11和F10的区别是,如果当前执行语句是 阅读全文
posted @ 2011-07-27 19:10 csqlwy 阅读(1343) 评论(1) 推荐(0)
摘要:1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include <iostream>using namespace std;main (){int a,b;cin>>a>>b;cout<<a+b<<endl;}输入:2[回车]3[回车]输出:5用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束#include <iostream>using namespace std;main (){char a[20];cin>>a;cout<<a<<endl; 阅读全文
posted @ 2011-07-27 13:07 csqlwy 阅读(403) 评论(1) 推荐(0)
摘要:1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点; 6.会用Visual C++,并不说明你会C++; 7.学class并不难,template 阅读全文
posted @ 2011-07-04 02:51 csqlwy 阅读(515) 评论(1) 推荐(1)
摘要:#include<iostream>using namespace std;int main(){ int i,j,k,p,q; cout<<"输入三角的高度:"; cin>>k; for(i=0;i<k;i++) { for(p=0;p<k-i;p++) cout<<" "; cout<<"x"; for(j=0;j<=2*i-1;j++) cout<<"x"; //if(i) //cout<<"*&q 阅读全文
posted @ 2011-07-02 22:39 csqlwy 阅读(204) 评论(1) 推荐(0)
摘要:通过getche实现:Enter a number:123456 Number is:12345程序如下:#include<iostream>using namespace std;#include<conio.h>int main(){long a,b=0;char ch='a';cout<<"Enter a number:";while((ch=getche())!='\r'){ a=ch-48;//a=ch-'0'; b=b*10+a;}cout<<"\n Num 阅读全文
posted @ 2011-07-02 17:03 csqlwy 阅读(251) 评论(0) 推荐(0)
摘要:比较:① cin和>>来进行输入:要求用户通过按下回车来提示程序的输入已经完成,即使单个字符也是如此。② getche()可以实现:当用户敲入每一个字符的时候立即进行处理,而不用等待回车键。这个函数没有参数,要求包含conio.h头文件。注意:getche()会将字符显示在屏幕上;而各getch()不会将字符显示在屏幕上。就类似linux在输入密码的时候屏幕上什么反应也没有,但实际上已经输入进去了。#include<iostream>using namespace std;#include<conio.h>int main(){int chcount=0;i 阅读全文
posted @ 2011-06-30 17:20 csqlwy 阅读(544) 评论(0) 推荐(0)
摘要:#include<iostream>using namespace std;int main(){ int a,b;char c;cout<<"Enter a number:";cin>>a; for(b=2;b<=a/2;b++) if(a%b==0) { cout<<"the number is not a prime!"<<endl<<"第一个除数 is:"<<b<<endl;exit(0); } cout<<&qu 阅读全文
posted @ 2011-06-30 11:23 csqlwy 阅读(321) 评论(0) 推荐(0)
摘要:课本本来的程序#include<iostream>using namespace std;int main(){ unsigned int a1=0,a2=1,limit=4294967295;while(a1<=limit/2) { cout<<a2<<" "; int sun=a1+a2; a1=a2; a2=sun;}return 0;}运行结果为:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 阅读全文
posted @ 2011-06-28 18:52 csqlwy 阅读(1395) 评论(0) 推荐(0)