
c++总结
文章平均质量分 63
woshizfs
这个作者很懒,什么都没留下…
展开
-
内存溢出与内存泄露
内存溢出就是分配的内存不足以放下数据项序列。内存泄漏是指在堆上分配的内存没有被释放,从而失去对其控制。这样会造成程序能使用的内存越来越少,导致系统运行速度减慢,严重情况会使程序当掉。原创 2015-01-15 21:17:39 · 568 阅读 · 0 评论 -
类特定的new和delete的使用及理解
1、(1)CMultiThreadSingleQueue *quen= new CMultiThreadSingleQueue(); 上述表达式中使用的new操作符,这个操作符是由语言内建的,就像sizeof那样,不能改变意义,总是做相同的事情。它的动作分为3个步骤。第一步:该表达式调用operator new 标准库函数,分配足够大的原始的未类型化的内存,以保存指定类型的一个对象;第二步原创 2013-05-09 17:15:25 · 1001 阅读 · 0 评论 -
运算符的重载-封装自己的字符串模块
//MolString.h#ifndef _MOLSTRING_H #define _MOLSTRING_H #include #include#include using namespace std;class MolString{public: /*explicit*/ MolString(const char* str=""); MolString原创 2013-03-25 20:41:11 · 763 阅读 · 0 评论 -
迭代器的使用
#include #include using namespace std;typedef vector INTVEC;//第一种方法的输出/*void ShowVec(const INTVEC &v){ unsigned int i=0; for (i=0;i { cout }}*///第二种方法的输出/*void ShowVec(INT原创 2013-04-22 19:59:04 · 803 阅读 · 0 评论 -
C++中一个局部变量,如果没有初始化,它的值是不可预期的?
C++中一个局部变量,如果没有初始化,它的值是不可预期的?如下程序:在Ubuntu系统中,如下:在vs2010中原创 2014-03-24 21:15:38 · 1706 阅读 · 0 评论 -
C++ 字符数组函数与string函数
字符串可以用字符数组与字符串变量两种方式来存储,效果类似。一、用字符数组来存储字符串: char st1[100],st2[100] ; //字符数组说明cin>>st1>>st2;long a,b;输入:hello, world则st1={‘h’,’e’,’l’,’l’,’o’,’,’,’\0’}st2={‘w’,’o’,’r’,’l’,’d’,’\0}字符’\0原创 2014-04-18 19:06:09 · 584 阅读 · 0 评论 -
explicit构造函数的作用
explicit构造函数的作用 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器,2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。转载 2014-02-27 08:47:27 · 710 阅读 · 0 评论 -
Const关键字的用法
1、const成员函数:形式如:返回类型 函数名称 ()const{} 例如:int getNumber() const { } (1) const成员函数不会修改对象的状态。 (2)const 成员函数只能访问数据成员得值,而不能修改它。 (3)const 成员函数能修改mutable关键字修饰的成员变量,并且可以修改它得值。原创 2013-03-20 23:08:56 · 861 阅读 · 0 评论 -
防止控制台程序一闪而过的解决方案?
1.使用c++中system(“pause”)例子如下: #include #includeusing namespace std;void main(void){coutreturn 0;}2.使用c++中内联函数例子如下: #include #includeusing namespace std;i原创 2013-02-28 10:17:23 · 1225 阅读 · 0 评论 -
c++开发过程中遇到的问题及解决方案
问题一:1>JForm.obj : error LNK2019: 无法解析的外部符号 "public: virtual __thiscall JFC::JForm::~JForm(void)" (??1JForm@JFC@@UAE@XZ),该符号在函数 "public: virtual void * __thiscall JFC::JForm::`scalar deleting des原创 2014-01-06 15:08:36 · 3704 阅读 · 0 评论 -
BOOST_STATIC_ASSERT
#include class Timestamp{ private: int64_t microSecondsSinceEpoch_;}; BOOST_STATIC_ASSERT(sizeof(Timestamp)==sizeof(int64_t)); // BOOST_STATIC_ASSERT(sizeof(int)==sizeof(short));原创 2013-09-23 21:30:24 · 864 阅读 · 0 评论 -
四种对象的作用域
1、栈对象 2、堆对象 3、全局对象 、静态全局对象 4、静态局部对象#include using namespace std;class Test{public: Test(int n):n_(n){ cout } ~Test(){ cout }private: int n_;};int m2; //未原创 2013-03-18 20:00:10 · 798 阅读 · 0 评论 -
面试题集合一
for(i=0;i if(条件满足){ doSomething(); else doOtherthing();}if(条件满足){ for(i=0;i doSomething();}else{ for(i=0;i doOtherthing();}这两个FOR循环各有啥优缺点按照林锐博士的说法第一种转载 2015-01-26 16:14:18 · 653 阅读 · 0 评论 -
输出流的格式化
输出流的格式化要从两个方面来实现原创 2014-06-23 09:25:39 · 1169 阅读 · 0 评论 -
函数适配器
函数适配器能够将仿函数和另一个仿函数(或某个值、或某个一般函数)结合起来。 函数适配器示例: #include#include#include#include#includeusing namespace std;class Person{public: Person(const string& name):name_(name){原创 2013-09-20 16:40:47 · 682 阅读 · 0 评论 -
c++点滴知识总结
1、cout--console output 控制台输出 cin---console input 控制台输入 endl--end line 结束一行 .\n-----换行 cout cin>>aa; 输入aa 2、#include 系统自带得 #include "demo.h" 自己写的程序原创 2014-05-28 21:31:57 · 526 阅读 · 0 评论 -
STL技术总结
1.capacity 指容器在分配新的存储空间之前能存储的元素总数。2. size 指当前容器所存储的元素个数 3).reserve表示容器预留空间,但并不是真正的创建对象,需要通过insert()或push_back()等创建对象。resize既分配了空间,也创建了对象。 4).reserve只修改capacity大小,不修改size大小,resize既修原创 2014-05-28 21:30:14 · 830 阅读 · 0 评论 -
C++用new创建对象和不用new创建对象的区别解析
C++用new创建对象和不用new创建对象的区别解析s首先说下:java中new返回的对像引用,而c++中返回的是对像的实际地址。没有delete的原因是java有垃圾回收机制,当一个对像没有被引用时,系统会自动将其清理掉(也就是系统自动执行了delete)。在C++用new创建对象和不用new创建对象是有区别的,不知你是否清楚的了解它们到底有什么样的区别转载 2014-05-28 21:27:42 · 960 阅读 · 0 评论 -
C++中的前向声明
前言:C++中类必须先定义,才能够实例化。两个类需要相互引用形成一个“环形”引用时,无法先定义使用。这时候需要用到前向声明前向声明的类不能实例化。原创 2014-07-16 15:13:24 · 595 阅读 · 0 评论 -
DLL中调用约定和名称修饰(二)
4、thiscallthiscall调用约定是C++中的非静态类成员函数的默认调用约定。thiscall只能被编译器使用,没有相应的关键字,因此不能被程序员指定。采用thiscall约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,只是另外通过ECX寄存器传送一个额外的参数:this指针。 这次的例子中将定义一个类,并在类中定义一个成员函数,代码如下:转载 2014-01-06 11:51:30 · 565 阅读 · 0 评论 -
setsockopt 设置socket 详细用法
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket://地址可以重复利用BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesock转载 2014-01-04 13:46:09 · 746 阅读 · 0 评论 -
c++继承知识点积累:继承和构造函数
1、基类的构造函数不被继承,派生类中需要声明自己的构造函数 2、声明构造函数时,只需要对类中新增成员进行初始化,对继承来的基类成员初始化(调用基类的构造函数完成)。3、派生类的构造函数需要给基类的构造函数传递参数。 例子如下:#include using namespace std;class BaseObject{public: BaseObject原创 2013-05-09 21:44:19 · 1044 阅读 · 0 评论 -
c++中的抽象类(纯虚函数)
1、在基类中不能给出有意义的虚函数定义,这时可以把它说明成纯虚函数,把它的定义留给派生类来做2、定义纯虚函数: class 类名{ virtual 返回值类型 函数名(参数表) = 0; };3、纯虚函数不需要实现 #include #includeusing namespace std;class Shape{public原创 2013-05-22 23:08:08 · 1186 阅读 · 0 评论 -
解决派生类多重继承产生的二义性
#includeusing namespace std;class Furniture{public: Furniture(int weight):weight_(weight) { cout } ~Furniture() { cout } int weight_;};class Bed: virtual public Furnitur原创 2013-05-21 13:44:58 · 1662 阅读 · 0 评论 -
【转】#pragma 预处理指令详解
beibei 发表于 2006-12-5 15:33:00在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其转载 2013-05-04 11:24:40 · 712 阅读 · 0 评论 -
关于windows消息轮询
windows是消息轮询机制,那这样的程序将不断循环接收消息直到结束,岂不是很占用资源?如果我编写一个c++程序用循环来不断更新显示时间,cpu占用率会很高,那么windows是用什么办法使得那些消息轮询的程序占用很少资源呢? 消息循环中,用到最多的函数是GetMessage()和PeekMessage(),GetMessage()函数在消息队列为空时,是不返回的,这时系统不会给原创 2013-05-02 15:25:39 · 1386 阅读 · 0 评论 -
MAP容器的使用
#include #include #include using namespace std;int main(){ //插入到map容器内部的元素默认是按照key从小到大来排序。 //其中key类型一定要重载 map mapTest; /*****插入的操作,按照不同的方式**********/ mapTest["aaa"]=100;//int& oper原创 2013-04-22 21:43:44 · 712 阅读 · 0 评论 -
运用c++中的运算符重载理解自加和自减操作
////////////////////Integer.h////////////#pragma onceclass Integer{public: Integer(int n); Integer& operator++();//前置++ Integer operator++(int n);//后置++ ~Integer(void);// friend Inte原创 2013-03-23 19:59:15 · 836 阅读 · 0 评论 -
c++中字符串的使用--------string::npos 的理解
static const size_t npos = -1; The string class provides six search functions, each named as a variant offind. The operations all return astring::size_type value that is the index of where the m原创 2013-04-03 21:44:49 · 1233 阅读 · 0 评论 -
浅谈C++中内存分配、函数调用和返回值问题
浅谈C++中内存分配、函数调用和返回值问题 2011-06-21 13:40:54| 分类:编程类| 标签:|字号大中小 订阅在谈述函数调用和返回值问题之前,先来看看C++中内存分配的问题。 C++编译器将计算机内存分为代码区和数据区,很显然,代码区就是存放程序代码,而数据区则是存放程序编译和执行过程出现的变量和常量。数据区又分为静态数据区、动态数据区转载 2013-03-18 23:07:12 · 678 阅读 · 0 评论 -
c++中得单例模式
1、定义:保证一个类只有一个实例,且提供一个全局访问点 注意:(1)单例模式中禁止拷贝、禁止赋值操作。代码实现如下:#includeusing namespace std;class Singleton{public: static Singleton* getInstance(){ if (instance==NULL) { instance=原创 2013-03-14 21:20:06 · 684 阅读 · 0 评论 -
c++赋值和初始化
先看例子://Test.h#ifndef _TSET_H#define _TSET_Hclass Test{public:Test(int aa);Test();Test& operator=(const Test& other);~Test();private:int bb;};#endif//Test.cp原创 2013-03-12 20:31:47 · 625 阅读 · 0 评论 -
派生类与基类的转换
派生类到基类的转换(1)当派生类以public方式继承基类时,编译器可自动执行的转换(向上转型upcasiting 安全转换) 1、派生类对象指针自动转换为基类对象指针 2、派生类对象引用自动转化为基类对象引用 3、派生类对象自动转换为基类对象(特有的成员消失) (2) 当派生类以private/protecte原创 2013-05-12 18:57:01 · 3617 阅读 · 0 评论 -
转换构造函数与类型转换运算符重载
1、转换构造函数:将其他类型转换为类类型 2、类型转换运算符重载:将类类型转化为其他类型 代码的demo如下:#include #include using namespace std;class Manager;class Employee{public: Employee(const string& name,const int age,c原创 2013-05-12 20:11:08 · 1146 阅读 · 0 评论 -
进程和线程的知识总结
1、当一个进程执行一个fork调用的时候,会创建出进程的一个新拷贝,新进程将拥有它自己的变量和PID。这个新进程的运行时间是独立的,它在执行时完全独立于创建它的进程2、在进程里面创建一个新线程的时候,新的执行线程会拥有自己的堆栈(因此也就有了自己的局部变量),但要与它的创建者共享全局变量、文件描述符、信号处理器和当前的工作目录状态。进程是资源竞争的基本单位线程是原创 2013-12-20 09:57:40 · 751 阅读 · 0 评论 -
不同数据间的转化
#include using namespace std;int main({ //把十六进制的数据转换成十六进制格式的字符串 char addrData[4]={0x12,0x84,0x59,0x23}; char s_disAdd1[1024]; sprintf(s_disAdd1,"%02x%02x%02x%02x",addrData[0],addrData[1原创 2013-12-19 08:58:41 · 631 阅读 · 0 评论 -
c++拷贝构造函数
1、使用一个已经存在得对象来初始化一个新的同一类型得对象声明:只有一个参数并且参数是该类对象得引用如果类中没有说明拷贝构造,则系统自动生成一个缺省复制构造函数,则为该类得共有成员。例如: Test(const Test& t);注意:在参数中有利用引用时 将不在开辟空间,直接指向对象的引用,共享内存,提高内存得使用率。原创 2013-12-19 09:02:02 · 576 阅读 · 0 评论 -
虚函数
1、虚函数是c++一个重要特性多态的表现形式(函数重载、运算符重载、模板、虚函数)-》多态的表现形式 2、虚函数的定义: virtual 函数类型 函数名称(参数列表); 如果一个函数在基类中被声明为虚函数,则他在所有派生类中都是虚函数注意点:(1)只有通过基类指针或引用调用虚原创 2013-05-22 21:07:23 · 915 阅读 · 0 评论 -
容器适配器:stack、queue、priority_queue
#include#include#include#include#include #include#include #include using namespace std;int main(){ ///////////利用现有的容器,适配成新的容器,如现有的list、vector容器 cout //stack s1; //ok //stack>原创 2013-09-21 12:15:43 · 830 阅读 · 0 评论 -
迭代器适配器
#include#include #include#include#includeusing namespace std;void printEle(int n1){ cout} int main(){ //////////////插入迭代器实际上是一个输出迭代器(*it=; ++)/////////////////// /*int a[原创 2013-09-20 22:09:15 · 773 阅读 · 0 评论