新回答列表

0

关于服务器判断客户端是否send结束这个是由发送来告诉服务器的。 比如发送方先告诉客户端 我要给你发送1024个字节。那么服务器收到1024个字节就知道数据发送完毕了。至于是继续recv还是close socket这个就看自己的 ...


0

注册回调函数。 注册过函数以后,当有事件发生的时候(鼠标光标移动,鼠标键按下),就会自动调用被注册的函数。


0

临时对象取地址有意义吗? 函数返回立马就销毁了 pbase = &d; //@1 这样可以初始化 Base中的成员 或者 new Derived(vec) 这也不叫初始化Base中的成员,Base中的成员早在Derived d(vec;)的时候就初始化了。 ...


0

C++/CLI 是没有C++那样的数组的,所谓的数组也是一个类。 具体方法参考[System::Array][1] [1]: http://msdn.microsoft.com/zh-cn/library/czz5hkty%28v=vs.90%29


0

宽字符是C++流行之前,windows API用来显示ASCII以外字符的方法,它其实已经落后了,所以如果你为了要迁就它的函数,就直接把要用的函数,连同string转const wchar_t *的语句一起封装起来,再哪用,就在哪里转,不要 ...


0

类模板的名字与普通函数名相同了,当然会把那个函数当构造函数处理。 我记得STL源码剖析写的是`JJ::allocator`吧,类名一般是名词,不是动词。


0

如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏 class A { public: void input(); }; Class B:public A { public: input ...


0

你的b只是一个const char*,不是一个类,不可能重新定义这个类的`<<`(也就是重载<<操作符),再者它本来也就是个指针,所以只能显示地址了。


0

使用一句话释放两个指针, 这不可能. 因为 指针a和指针b所指向的内存都是单独分配的, 操作系统的内存管理机制已经决定了,你想要的不能实现. new了两次,那么你就得delete两次. 当然,你使用循环之类的来释放, 如果 ...


0

初始化列表是“先使用这个列表中的参数调用各成员变量的构造函数来构造成员变量,然后再调用类的构造函数来构造类” 你注释的构造函数是“先使用默认构造函数来构造成员变量,再调用构造函数来构造类,在这个构造函 ...


0

没要求必须可以无参构造,你理解错了,改成这样就行了。 map<string,string,decltype(f)> mss(f); 这个只在 g++-4.7.0 上试了一下,vs 你自己试吧。 ...


0

void my_vector() { cout<<"my_vector :"<<endl; vector<int> ivec; int i = 0; int j = 0; for (;i<100;i++) { srand(i); j = rand( ...


0

shared_ptr<int> m_pInt2 = shared_ptr<int>(m_pInt);


0

尝试修改const 变量的行为未定义. 那是编译器的问题,调试查看内存里面内容有没有改变就知道了


0

感觉有点奇怪,发送数据为什么不重载 handle_output 在linux,ACE 会用epoll。 而你只是让epoll关注了读而没有关注写, 写用自己的多线程发送, 你这把多路复用和并发都用了, 怪怪的,没见过这 ...


0

//================================================================= #include <iostream.h> #include "StdAfx.h" UINT GetStrCount(LPCTSTR lpBuffer,LPCTSTR lpStr); void main() ...


0

`priority_queue`的要求是支持随机访问并且支持`front() push_back()` 和 `pop_back(`)方法 [http://en.cppreference.com/w/cpp/container/priority_queue][1] Working with a priority_queue is similar to manag ...


0

protected void Page_Load(object sender, EventArgs e) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(@"F:\XMLFile1.xml"); XmlNode root ...


0

参考下面的例子: public class KeyboardHookLib { private const int WH_KEYBOARD_LL = 13; //键盘 //键盘处理事件委托. private delegate int HookHandle( ...


0

个人理解,指针的好处: 1、可以隐藏D3DXVECTOR4等结构体的具体信息,不用对外暴露,达到彻底封装。甚至有些API直接用void *。 2、可读性好,比如add(x, y, &z),很容易看出是z=x+y,而add(x, y, z)不看声明的话猜 ...


0

不能说Java的垃圾回收慢,而且快和慢都得有个参照才更有意义。 至于shared_ptr,我觉得主要问题不在于快慢。 shared_ptr本身是很强大的,但应该少用,而在设计上下功夫。 如果你的某一部分代码离了shared_ptr就会 ...


0

肯定要进程阻塞。select属于I/O复用,是同步I/O


0

就你的例子,扩展如下: #include <iostream> template<typename T> class Data { public: typedef void (Data::*PFUN)(); static PFUN get_fun(unsigned index) { s ...


0

#include <iostream> #include <cstdlib> using namespace std; class Base { public: Base() { cout<<"base"<<endl; } ~Base() { cout ...


0

加volatile限定 有的编译器也有相关的禁用代码段优化指导


0

全局数组可以被不同的线程并发访问,所以要加锁 第二个是,不同的线程的TLS在不同的位置,但是这个数组是全局的- -,所有线程共享的,不是数组元素是全局的 比如A.B2个线程 2个线程同时申请一个位置,会有啥事? ...


0

1.inline省去普通函数的压栈和call,以空间换时间,仅仅省去了函数调用的开销, 2.循环可能会造成代码膨胀,得不偿失,所以编译器会自动调整是否展开内联 ...


0

md5只是把一堆二进制数组进行特定运算,只与运算的物理内容(二进制数字)有关,而与逻辑内容(汉字还是字母)无关。 LZ这里的异常可能是因为LZ参与运算的汉字与网站上的汉字编码方式不一样,虽然都是unicode中的字 ...


0

C++中member function会有一个“隐藏”的参数 Person* this 你的线程函数实际上是`void* Person::pshout(Person* this,void*)` 所以不行,一般都是static member function为类中线程函数的 不过好像用什么bi ...


0

Rect(int x,int y,int w,int h){ Point(x,y);//这一句只是构造了一个临时对象,没多大意义,你去掉结果也不变。 W=w; H=h; } 但是Rect构造会自动调用基类的构造函数,由于没有传参,所以用默认 ...


0

格式化字符串。 static char*insert_record_table_cmd="insert into contacts_data values('%u','%s','%u','%s','%s','%s','%s')"; sprintf(CONTACTS_DATABASE_MAN.cmd_buffer,insert_record_table_cmd,in ...


0

用`union` 和 void* 都可以~


0

不会的,socket 是应用层的, 每个存活的 socket 系统会安排一个端口给他, 在你创建了多个 socket之后,你可以在CMD下用 netstat -an 看一下,每个 socket所分到的端口都不一样, 既然端口不一样,数据就绝对不会 ...


0

要这样用: const_cast<T&>(obj).writefile();}


0

CString str="Hello"; BSTR bsName = str.AllocSysString(); SysFreeString(bsName); p->RefExample(&bsName ); 或者直接用CComBSTR


0

list<double>::iterator iter; 改成 list<double>::const_iterator iter;


0

/* File : thread1.c Author : Mike E-Mail : Mike_Zhang@live.com */ #include <stdio.h> #include <pthread.h> #include <time.h> void m_threadSleep(int sec,int ns ...


0

先找到一个空格的位置,取这个位置前面的子串, 在这个子串里找 = 的位置, =前面的是变量名,后面的是变量的值,再根据变量字符串进行匹配赋值 string sName; string sValue; CaseInfo ci; ...


0

先解决楼主的问题: 楼主定义的成员变量 m_drmap 应该是 CMapStringToObj 类型的,该类型的 Lookup 函数的传出值(第二个参数)是一个指针的引用 *&(如果不懂指针的引用,可以Google之,简单说就是指针的 ...


0

char res_buf[409600 + 1]; //这个初始化得清0 size_t copy_data(void *ptr, size_t size, size_t nmemb, void *stream) { memcpy(res_buf + strlen(res_buf), ptr, size * nmemb); //请在结尾加'\0 ...


0

delete []类中的结构体变量名.b; 比如类中定义 struct A c; 则调用 delete []c.b;


0

class tst1 { public: tst1(){i =1;} void print() { printf("tst1 i=%d\n", i); } int i; }; class tst2 { public: ...


0

检查是否资源泄漏的办法之一: 在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象 让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至 ...


0

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_LBUTTONDBLCLK: if (!IsZoomed(hwnd)) ShowWindow(hwnd, SW_SHOWMAXIMIZED); ...


0

sprintf_s(sql_cmm,sizeof(sql_cmm),"update I_CarLstGps set IsOnline=\'%c\' where DeviceCode=\'%s\'",isonline,deviceid); 改为 `sprintf_s(sql_cmm,sizeof(sql_cmm),"update I_CarLstGps set IsOnline=\'%d\' ...


0

动态库互调,是个循环依赖的问题,你可以先让其中一个动态库解除对另一个动态库的依赖(比如注释一些代码),先把lib生成了


0

void swap(int , int );//这里声明有错 void swap(int&x, int&y)//要改成和下面的一致才行a


0

#include <Windows.h> #include <stdio.h> #include <conio.h> int count = 0; WORD Color = 0x89; // http://blog.csdn.net/hongwenjun/article/details/6202127 // windows控制 ...


0

for(int i=0;i<max;i++) { delete [] piecewiseData[i]; }


0

1. friend Time operator *(double m,const Time &t) { return t * m; } 2. Time::operator int()const { return int(h ...


0

楼主写错了吧: `return static_cast<double>(sqrt(x*x,y*y));` 应该是`x*x+y*y`吧 sqrt函数只接受一个参数,并且计算距离公式不对。这样: #include<iostream> #include<cmath> using namespace st ...


0

struct header { int length; } struct header h; 把你数据长度加到length中 char *buf = new sizeof(h)+h.length; memcpy(buf, h, sizeof(h)); ...


0

传`const char*` 接收方自己根据const char*构造一个string出来


0

第一个:析构函数没有定义; 第二个:get_isbn函数要声明为const,否则compare函数中const参数无法调用这个函数的。


0

Test(const Test&s) { /*这里应该填什么使得程序正常运行不崩溃?其他地方不能改哦。*/ p =new int; //复制指针指向的内容    memcpy(p,s.p,4); cout<<1; } ...


0

1.一般来说的话全局的函数作用域是文件域(文件以内),跨文件的函数调用要加extern 表明文件外引用域; A文件中定义函数,B文件中要extern下才可以用; 2.TestFunc()是全局函数; 3.TestFunc()作用域归 ...


0

可以在消息处理函数响应 case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK: .... break; }


0

tempDoubleArray[i*cnFeatrueNumber+j] = featureVector[i][j]; 改成 tempDoubleArray[i*cnFeatureDimension+j] = featureVector[i][j];


0

vol(twobox)-vol(firstbox) 怎么能这么调用vol函数? firstbox.vol() twobox.vol()


0

typedef int (*PF) (const char *, const char *); 定义一个类型,类型是函数指针,返回值是int,参数是后面2个。 PF Register(PF pf); 这个是函数声明,返回值是PF,函数名是Register,形参类型是PF,形参名 ...


0

无解.想局部性吗,加对大括号? int ia[] = {1,2,3,4}; { int *p = ia,size_t size = sizeof(ia)/sizeof(ia[0]); for(p != ia + size; p++) { cout<<*p<<endl; } } ...


0

这个VC读Mysql的啊,下面是我平时的写法,希望有所帮助: if(mysql_real_query(g_mysql, sql, (UINT)strlen(sql)) != 0) { return FALSE; } MYSQL_RES *result; MYSQL_ROW row; if(!( ...


0

请看: [隐式类型转换和explicit关键字的作用][1] 包你不再有此类问题。 #include <iostream> #include <string> using namespace std; class Book { public: // ...


0

请看: [隐式类型转换和explicit关键字的作用][1] 包你不再有此类问题。 #include <iostream> #include <string> using namespace std; class Book { public: // ...


0

gets本身就是个不安全的函数,直到换行符号才结束,而你的数组满足不了输入的数据,系统会给你在静态分配的地址后面给定它存储空间存放数据。所以你的输出是你刚的全部输入,最好是在后面控制好字符数量,保证安全。 ...


0

服务主程序的话,应该创建win32控制台项目吧。如果是提供服务的一个模块,那就是dll项目。 个人认为不会出现监听失败,程序会一直监听直到有客户端连接。 ...


0

函数调用是执行完才返回 时间片是到点了强制暂停(切换),不管那么多 因为是一个处理器对多个线程


0

可以参考 [C/C++中指针和引用之相关问题研究][1] 函数指针的声明使用方式: <想要指向的函数之返回类型>(*函数指针的名称)<想要指向的函数之参数类型…> 如要想声明一个函数指针指向以下函数: void p ...


0

1.设置两边的内存对齐方式相同 2.一个一个发或者把他们连到一起发都可以


0

`list<T>::iterator` 这是一个模板类型,会跟着不同类型的T生成不同的迭代器类型 `m_iterator = NULL` 跟它重载的等号操作符有关,劝楼主还是先看看stl的容器部分吧 ...


0

Test *ptr3[2]; for(int i=0; i!=2; i++) { ptr3[i] = new Test; } ptr3[0]->Set(5,6); ptr3[1]->Set(7,8); ptr3[0]->Print(); ptr3[1]- ...


0

你想匹配什么?正则式的通用匹配符是.不是*哦 `[]`表示的是集合 试试`(第.章){5,}`


0

比较函数cmp有问题,改了下,测试成功,记得加<string>头文件 bool cmp(student n1, student n2) { if(n1.sum != n2.sum) return n1.sum > n2.sum; else { ...


0

在C#中,要指定成员的内存布局情况,我们需要结合使用StructLayoutAttribute特性、LayoutKind枚举和FieldOffsetAttribute特性,它们都位于System.Runtime.InteropServices命名空间中。 下面我用struct来试着模拟上 ...


0

假定是TCP的方式,一个连接是由: 服务器的IP + 服务器的port + 客户端的IP + 客户端的port 来确定的。 很显然服务器的IP和port不会随便更改(假定服务器的IP是唯一的,port也是唯一的) 但客户端的IP和port是可以 ...


0

while(1) { if((n=read(new_fd,buffer1,[color=#FF0000]sizeof[/color](buffer1)))==-1) //别用strlen { printf("Read error:%s\n",strerror(errno)); 记住要把代码放到code标签 ...


0

把 A GetA(int i){return ba[i];} 改成 A& GetA(int i){return ba[i];} 即可,你返回的是一份拷贝,改成引用就可以得到真正的变量了。


0

File: "C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\vector" 2 occurrences found on 2 lines 1278: ? 0 : _Capacity + _Capacity / 2; // try to grow by 50% File: "C:\P ...


0

ReadConsole函数只能从控制台窗口读取用户的输入,不能从文件读取内容,而ReadFile既可以读文件也可以读窗口输入,所以读文件的时候把File换成Console


0

C++专门为成员指针准备了三个运算符: `"::*`"用于指针的声明,而"`->`*"和"`.`*"用来调用指针指向的函数


0

1.假设有函数void f(int a)和函数void f(const int& a) 是不是后者的写法更好?因为后者避免了分配内存? >> 两者的主要区别: >> a. void f(int a)传递到函数内部的,是a的一份拷贝,void f(const ...


0

c/c++的区别不在于这个可变长参数,在于它们的编程思想。楼主提出的这个问题不论是c还是c++,它们的实现是一致的。


0

看下面这个链接以及其中的例子就清楚了: [http://www.cplusplus.com/reference/stl/set/equal_range/][1] [1]: http://www.cplusplus.com/reference/stl/set/equal_range/


0

#define NDEBUG #ifndef NDEBUG #endif 你把#define 给注释掉就是关闭了 你不注释就是打开 这里的意思应该是宏的使用


0

#include <stdio.h> #include <string.h> #include <stdlib.h> char sU[]="http://***.***.***user_login_qp.php?uid=%BF%BC%C0%AD&pwd=7faac35ae7dcaddca9ef0c1b1c50e68a&flag=Test"; char *getUrl ...


0

Point(x,y);//这个是临时对象,不是你父类的


0

CRect rc(10,100,80,250); 在你声明CRect 类的对象的时候,在对象内部就已经申请了两个类变量: private: CPoint ptCenter; CSize size; 所以程序才能正常运行. ...


0

在C++中类和结构差别不大,就是你说的缺省访问控制不同,做过COM的就知道,接口其实都是使用结构定义一堆纯虚函数让实现类去继承实现的,这不是什么秘密了哦,不必大惊小怪~ ...


0

wsprintf(cmd,"setaudio %s volume to %i",music[now].musicShortRoad,pos*10); //music[now].musicShorRoad 是当前播放歌曲的短路径。pos 是音量滑块的值 。 用这句。


0

楼主,静态变量他是和全局的变量一样都是存在全局区域,但是他和全局数据不同的是他的访问区域只局限于那个作用域就比如在你这个函数,里面,但是在外面是访问不了的。 说到这里楼主应该知道静态变量的生命周期应该 ...


0

#include <stdio.h> #include <string.h> #include <stdlib.h> char sU[]="http://127.0.0.1/forum.jsp?tid=123&fid=1"; int getUrlParamValue(char *sUrl,char *sParam) {//不是数或找不到sParam返 ...


0

1、两个数之间必须有分割符,空格只是最常见的一种而已; 2、ungetch的真正意义在于回退一个字符给缓冲区,因为你在分析记号的时候,是一个字符一个字符的,如果不符合某种条件时,你需要回退一个字符,它好去分析 ...


0

class A { public: A(); ~A(); }; class B { public: B(); ~B(){delete p1;} A* p1; A* Fun() { if(p1!=NULL) delete p1; ...


0

跟cout的默认输出格式有关系 试下这个 …… #include<iostream> #include <iomanip> using namespace std; main() { int a;cin>>a; double x,m; ...


0

// GetFileSpaceSize.cpp : Defines the entry point for the console application. // /************************************************************************ * author: HwangBae * creat ...


0

多次释放, 会抛异常, 程序崩溃! 释放之后,OS的内存管理会回收,如果其他进程需要申请内存,可能会将其分配出去,该进程再对它读写,所以会出现你说的乱值。 ...


0

os<<*beg<<" " ++beg; 分号少了个... os<<*beg<<" "; ++beg;


0

非引用函数返回的是一个副本。这点要明白。下面分析: `iterator it =X.GetTT1().begin();`这时候假设X.GetTT1返回的是一个临时对象A。 而你的迭代器指向了A的开始。 it !=X.GetTT1().end()这时候X.GetTT1返回的 ...


0

char outBuffer1[10]应该是静态分配,作用域自动释放内存 char *outBuffer2=new char[10]; 动态分配,应手工删除,否则会造成内存泄漏 而且它得到的是 char *类型 还有,一个在栈上,一个在堆上. ...


0

不用`DECLARE_SERIAL()`,可以序列化,但是仅限于你自己去调用你的Serialize()函数,用了`DECLARE_SERIAL()`,一是程序可以在不知道你的类时通过运行时类(CRuntimeClass)动态创建对象,就是`DECLARE_DYNCREATE()` ...


0

两种解决办法: 1. 将void display(const Base &a)改为void display(Base &a),或者 2. 将virtual void printtf()改为virtual void printtf() const


0

#include <stdio.h> #include <string.h> char s[] ="type=SYSCALL msg=audit(07/13/2012 02:24:06.652:12319924) : arch=x86_64 syscall=write success=yes exit=35 a0=2 a1=7fff8df61060 a2=23 a3=7272652 ...


0

#include <iostream> #include <cstdlib> #include <cstring> using namespace std; int main() { char str1[256]; cin>>str1; int a=atoi(str1);//字符串转为int型 ( ...


0

不是空的,只是实现默认的构造。至于默认的构造就看该类里面的数据成员的默认构造是什么了。 默认的赋值操作符是实现按位拷贝。就是把A里面的内容按照数据位复制给B里面的内容 ...


0

返回类型 typedef typename _bi::list_av_2<A1, A2>::type list_type; return _bi::bind_t<R, F, list_type> (f, list_type(a1, a2)); 其中 A1 是 `LPTHREAD_START_ROUTINE`,A2 是 LPVOID。 ...


0

加上大括号可以, 加上括号就是新的作用域了,C89、ANSI C只能在新的作用域开始处定义变量。


0

虚函数也是函数。子类的函数是可以调用父类的函数的。所以子类的虚函数是可以调用父类的虚函数的。vptr中是存放了虚函数的地址,但是并不是所有访问虚函数都得通过vptr。 有啥错误,敬请指正 ...


0

int num; while( !(cin>>num) || cin.peek()!='\n' ) { cin.clear(); cin.ignore( numeric_limits<streamsize>::max(), '\n' ); cout << "输入数据错误,请重新输入:" << endl; } ...


0

map是用红黑树实现的,实际上是排了序的,你给这个判断是否相等的函数显然是错了,应该给<函数


0

ofstream fout("1.txt") 这个有问题,下面这样写吧: ofstream fout("1.txt", ios::app); 你那样的写法每次都会重新创建文件,而不是在文件后面追加,所以只会出现最后一个。 ...


0

是表中名为"pos-loc"的列的所有元素,还是只是其中的一个字段的内容? 这句话本身有矛盾。pos_loc就是一个字段,也是一列。在数据库中,字段和列基本上是同义词。 float temp=m_pRecordset->Fields->GetItem( ...


0

你的问题是指针再buildtree函数那地方运用错了。 导致你的空间分配给了其他的地址,而root没有获得正确的空间。参考下我的代码吧。 [http://blog.csdn.net/w170532934/article/details/7089656][1] [1]: http: ...


0

标准保证 stack unwinding 过程中,已构造的数组对象按逆序析够。主楼的程序导致 uncaught exception,因此没有发生 stack unwinding,因此没有析够,改成下面这样就能看到效果了。 #include<stdexcept> ...


0

不会影响x、y、z的内存布局。 理由: 1. ITest作为基类,其析构函数是virtual的,这是很正确的。这样做的结果就会多出一个虚函数表指针。 此后,无论你在ITest中增加纯虚函数还是普通虚函数,都不会改变ITest的内 ...


0

#include <iostream> #include <algorithm> #include <vector> #include <functional> using namespace std; void TopKAlgorithm(int inputArray[], int nInputLength, int nOutput ...


0

`Init(&YlsIniFile);`相当于 this->Init(&YlsIniFile); 如果this确实指向派生类对象并且Init是虚函数,那么应该就是调用派生类的Init


0

Test func() { return Test(); } 这样返回的是什么?你相当于又定义了一个名为Test()的函数,而不是一个类对象


0

`C<Base> db = new D_Base();`两边的类型不同,没有重定义的赋值函数或者没有`C(T*){}`这样的构造函数,是不行的。


0

LZ对函数预定义的概念还不是很清晰咯 函数预定义(或者函数申明)是为了告诉编译器函数的返回类型、函数参数类型等信息,告诉编译器这些是因为编译器需要为函数在执行期间的函数栈分配地址和空间,而要达到这个目的, ...


0

C++本来就不负责你的越界问题,最多只会在程序崩了之后提示你是什么问题而已。。 就算你不写动态数组,写固定长度的数组也一样啊。。越界保护是需要程序员自己养成良好习惯去避免的。 ...


0

#include <iostream> #include <vector> using namespace std; vector<int>::const_iterator find_val( vector<int>::const_iterator beg, vector<int>::const_iterator end, int value, ...


0

从语法上来讲,这样写是错误的, int test_class* mem1 是一个指向数据成员的指针,申明时与类相关,表示成员的偏移量,但使用时应与对象相关,表示对象成员本身 比如: test_class a; int test_class:: ...


0

#include <iostream> using namespace std; #include <cmath> 把这三行加到头文件里去


0

execlp( "wc","wc","-l",NULL ); 这个是65的来历。 新建一个pipe,标准输入和标准输出被分别重定向到pipe建立的fd[0]和fd[1]。 子进程和父进程都调用了execlp, 这个函数是不会返回的。 子进程和父进程由此改 ...


0

拷贝构造函数的参数必须是引用(一般还是const的),除此之外的对象或者对象指针都是错误的。 因为 1. 只有引用作为参数的时候,才不会产生副本。其它情况,比如实参是一个该类的一个对象,或者该类的对象指针都会产 ...


0

楼主之所以产生疑问是没注意递归的方式 invert(a+1,k-2); 每一次递归 函数栈内的局部变量a都往后移了一位,把数组定义成全局变量,比较之下可以看出这一点 递归的原理可以这样理解 1 2 3 4 5 6 7 将首 ...


0

一开始就把主对话框指针传给子对话框: Dialog1->m_pMain = (void *)this; 以后要传值给主对话框,就在子对话框里面这么调: ((CMainDlg *)m_pMain)->str = m_strData; ...


0

1 首先不同编译器的string实现不同,所以结果并不确定,可以大于实际大小,也可以等于实际大小 gcc下是4,15 2 如果你弄个长点的,就能看到区别了 string s="hahahahahhahahahahhahahahahahahhahahahahahahahh ...


0

vc系列一般是根据扩展名的,.c就是c,.cpp.cxx就是c++


0

子线程是不是也要等到主线程的第一个时间片用完挂起时才能被执行吗? 对于只有一个cpu 单核,不支持多线程的电脑来说是这样的。因为每一时刻只能有一个线程在cpu上运行。这和他们的父子线程关系没关系。 主线程挂 ...


0

string firstClass::first="luoage@msn.cn"; 放在main()函数之上 类静态成员类似于一个全局变量,需要在函数之外初始化


0

FindVoxel 不是一个const 函数. 而 o 是一个const 对象.所以出错. 不关取地址的事. 看EFFECTIVE C++ , 里面有说,函数能加const ,尽量加.


0

VC6.0对友元的支持不好,这是一个经典BUG 这里是解决办法 [http://www.cnblogs.com/xinjun/archive/2010/07/19/1780902.html][1] 当然最好的解决办法是抛弃VC6.0 [1]: http://www.cnblogs.com/xinjun/archive ...


0

这里:write(fd,b,8); b是二进制,当然是乱码了,你以为从fo memcpy一下就变成字符串啦? 用 fprintf(fp1, "%ld", fo); 试试。


0

把头文件当成文本来读入,然后分析文本,找出类的申明,找出每一个类的所有成员及其类型.这个时候所有的信息都是文本形态的,要判断类名称和成员类型都极为容易,其实就是基本的语法分析. ...


0

你记得的就是最常用的。 内联函数是以空间为代价换取运行速度的。 这还要看编译器是否把它内联处理。 这里有一个总结,目测可以解决你的疑问 [http://www.cnblogs.com/socrassi/archive/2009/09/09/1563002.html] ...


0

-lpthread的位置不对 g++ -I../include -g -Wall -Wextra sample1.o sample1_unittest.o gtest_main.a -o sample1_unittest -lpthread


0

OpenPort本身就返回BOOL类型的标志啊, if(C_com2.OpenPort(_T("COM2:"), 115200, 8, 1, 0)) { MessageBox(_T("打开串口成功")); } 这样就可以了。 ...


0

说区别并不好 构造函数的范围更大,复制构造函数那也属于构造函数,它是构造函数中的一种特例。 复制构造函数是直接用一个该类型的对象来完成对象的初始化 #include <iostream> using namespace std; ...


0

typedef int (*SaveBitmap_FP)(unsigned char *lpBits, int width, int height, LPCTSTR lpszPathName); HINSTANCE hinstance; SaveBitmap_FP SaveBitmap; hinstance = LoadLibrary("your.dll"); Sa ...


0

const在函数的后面,表示不能修改成员变量 但构造函数一般或者总是要修改成员变量的


0

帮你改了一下复制构造函数,你原来的实现基本都是使用未初始化变量等一些常见错误,平时得注意养成好习惯。 template <typename T> Vector<T>::Vector(const Vector<T> &vec) { elements = allo ...


0

在vs2008中type_info的地址在虚函数表前面,刚刚测试并打印出来了,下面代码中 `*(((int*)*(vptr-1))+3)`也就是取前一个指针的高字节处 int main(){ B b; fun pfun; for (int i = ...


0

你的第一个例子错了,对于引用参数,直接swap(x, y) 我写个简单例子,可以了解引用和指针2种参数的不同调用方式以及函数内不同实现方式 #include <iostream> using namespace std; void sw ...


0

不要每次DownloadFilesToDisk()时都调用 DWORD dwRet = GlobalmplFun::WaitThread(m_Thread); 并且将`::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ClasicThreadProc, NULL, 0, &threadID);` 返回的HAN ...


0

main函数return 0前面加一句 Sleep(1000); 或者用waitforsingleobject(线程的句柄)函数 来等待辅助线程返回。(我只会用windows的线程函数) 原因是由于主线程已经结束,而辅助线程还没来得及执行那些输出语句,就 ...


0

#include <iostream> #include <Windows.h> #include <boost/regex.hpp> #include <string> using namespace std; using namespace boost; int main( ) { char *buf[] = {"This is ...


0

string tmpStr; list<char *> cPtrList; cout << "Enter some strings:(ctrl+z to end)" << endl; while (cin >> tmpStr) { char * str = new char[tmpStr.size() + 1] ...


0

typedef struct { int x, y; }T; std::ostream& operator<<(std::ostream &os, const T &t) { os << t.x << ", " << t.y; return os; } template<c


0

fcntl提供的记录锁是建议锁,需要进程之间的配合,也就是说进程都要遵守获得锁->访问->释放锁的规则。 关于建议锁和强制锁可以这里说的比较清楚。 [http://blog.csdn.net/hnmsky/article/details/4316421][1] f ...


0

1. 你现在用自己的方法读入到数组需要多少时间? 2. 文件比较大,怎样处理都是需要一点时间的。 3. 文件为啥不用二进制方式存储呢?这样应该可以省去一些空间。 4. 每行4个浮点数(假定是float),4 bytes* 5000000 ...


0

请参考C++ Prime第四版 P475 15.2.2 protected成员 派生类只能通过派生类对象访问基类的protected成员,派生类对其基类类型对象的protected成员没有特殊访问权限。 ...


0

你得看看stl::algorithm中sort的用法: [http://www.cplusplus.com/reference/algorithm/sort/][1] 针对楼主这个例子,建议将比较函数作为类pro的友元函数。 [1]: http://www.cplusplus.com/reference/algorith ...


0

一般来收,如果要使用容器保存指针,那么,其指针应该是一个不需要释放的对象指针,或者是一个智能指针(能够自己释放自己)。 否则,我建议使用容器来保存对象,而不是对象指针。 ...


0

设置一个bit 用位或操作符(|)来设置一位. number |= 1 << x; 这就会将第X个bit置位。 复位一个bit 用位与操作符(&)来复位一个bit number &= ~(1 << x); 这将把第x个bit置0, 翻转一个bit 用异或操 ...


0

static_cast是第一个你应该尝试使用的。它做类型之间的隐式转换(如int到float,或着由指针到void *),它也可以调用显式转换函数(或隐含的)。在许多情况下,明确指出的static_cast是没有必要的,但重要的是要注意 ...


0

8和12的。 基类一个int 4字节,一个虚函数,导致了一个虚函数表的指针4字节。所以基类是8字节,然后继承类里面又多了一个自身的虚函数的表指针4字节。所以继承类是12字节。 去掉int后都是4字节。我猜测是因为没有 ...


0

#include <iostream> #include <vector> #include <string> typedef struct { std::string name; std::string phone; }Linkman; class Adlist { public: ...


0

string ( ); string ( const string& str ); string ( const string& str, size_t pos, size_t n = npos ); string ( const char * s, size_t n ); string ( const char * s ); string ( size_t ...


0

你用的都是同一个种子吧 反正是.net,不会跨平台,你别用C库了,用Windows API生成随机数,那个比较好,上网查一下吧,很多例子的 C库的不好用,srand的种子很难选,就算用时间,time的精度是1s,不够,其他的一些 ...


0

静态编译模式4下 是不是对话框里有控件,但其它电脑没注册这个控件?


0

如果select表示socket可读,那么再recv应该不会返回EAGAIN select返回时,可能会修改它的参数(集合、超时时间),最好在循环内部重新赋值


0

禁止隐式构造 编译下例子就知道了 class foo { public: foo(int i) : m_i(i){} protected: private: int m_i; }; class bar { public: expl ...


0

ifstream 是读取已有文件,不能创建新文件,如果文件不存在就会报错 你要使用ofstream 这个可以在文件不存在是创建文件。


0

全局变量内存分配和初始化时机问题,内存分配在链接时已经完成,初始化需要代码执行到变量定义处执行。 所以在A a;处tt的内存已经分配,所以可以执行tt.send();但是其构造函数要到t A::tt;处执行。 ...


0

ok.Format(_T("%c"),i); 或 ok.Format(_T("%d"),m_result); CString可以用Append方法


0

因为你枚举的时候,找到一个 删除一个, While using RegEnumValue, an application should not call any registration functions that might change the key being queried


0

SetErrorMode() Is Inherited Last reviewed: November 2, 1995 Article ID: Q105304 The information in this article applies to: Microsoft Win32 Application Programming Interface (API) ...


0

看来CStringList是禁止=的 改用AddHead成员函数。 void AddHead(CStringList* pNewList ); m_strList.AddHead(m_SkinUtil.SplitString(m_buf));


0

#include "stdafx.h" #include <sstream> #include <iostream> #include <string> using namespace std; void main() { int a=12; string b="中国"; ...


0

void display_message(const vector<int>& vec, string& str) { vector<int>::const_iterator it; for(it = vec.begin(); it < vec.end(); ++it) { cout << *it << " "; } cout << &


0

一般我们从C的设计角度来讲, 内存和地址是抽象的东西, 这个特性可以用来抽象代码, 形成封装与接口的统一. 一般来说, 一个地址对应一段内存, 同时对应一个释放函数, 这样即可形成统一接口与抽象. typedef int ( ...


0

看一下main函数的两个参数,argc代表数组大小,argv[]就是存储传进来的参数的数组,是字符串的。 你遍历这个数据就行了,argv[0] 代表第一个参数,argv[1]第二个 ...最后一个就是argv[argc - 1] ...


0

得用unicode的_T或者L 或者TEXT("your string")


0

把content3.erase(start, content3.end - start - 1);修改为content3.erase(start, end - start - 1);


0

boost::wregex wsname_pt(L"(^[A-Za-z0-9_\u4e00-\u9fa5]+$)");//宽字符 英文字母、数字、下划线、中文组合 std::wstring wsUserName = this->et_userName->GetValue().ToStdWstring(); bool flag = boost:: ...


0

LZ要学会查MSDN: ============================ POINT The POINT structure defines the x- and y- coordinates of a point. typedef struct tagPOINT { LONG x; LONG ...


0

//循环向a函数每次发送200个字节长度(这个是固定的)的buffer, //a函数中需要将循环传进来的buffer,组成240字节(也是固定的)的新buffer进行处理, //在处理的时候每次从新buffer中取两个字节打印 #i ...


0

当把友元函数的定义放在类域中时,实参的类型所在的域和名称空间也加入到名字搜索域中,所以后两种方法合法,第一种方法非法(因为类B中没有TestFn1)。 ...


0

#include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig);


0

在MSDN里面搜“Using Dynamic-Link Libraries” Creating a simple dynamic-link library Viewing the DLL exports Using load-time dynamic linking Using run-time dynamic linking Using shared memory ...


0

一般如果需要深拷贝(比如成员变量中有指针变量这种情况,大多需要实现深拷贝) + 对象赋值。 SOMECLASS a; SOMECLASS b; // ... a = b; // 这就要求SOMECLASS实现拷贝赋值操作符= ...


0

C++标准规定枚举不构成名称,而且枚举类型自成一种类型,可以被提升为int,但不存在从int到枚举类型的隐式转换。


0

#include <iostream> #include <string> using namespace std; inline int compare(string str1, string str2) { if(str1.size() > str2.size()) //长度长的整数大于长度小的整数 r ...


0

哈弗曼编码生成的树是一棵特别的树:每个节点要么拥有2个子节点,要么是叶子节点。而二叉树有一个性质:叶子节点个数n0,只有一个子节点的个数n1,拥有两个子节点的个数为n2。公式:n0+n1+n2 = n1 + 2* n2 +1 化简后 ...


0

你没为你的结构体重载 operator< 如果我没记错的话有这个就行了。 `a == b` 等价于 `!(a < b) && !(a > b)`


0

理解理论远比解决一个问题重要: 1,单一源文件编译时依赖声明,所以要调用第三方函数,需要包含其提供的头文件。 2,所有目标文件进行链接,如有动态库需要此时链接进来,以便被调用函数可以找得到定义。 3,严 ...


0

可能被中间的路由器 拒绝了! 查中间的路由器,特别是公司入口和公司出口。 可能是windows 2008 防火墙问题 Windows Server 2008防火墙配置攻略 [http://www.cnetnews.com.cn/2008/0402/792357.shtml][1] 添加入 ...


0

临时对象也有生命周期,在其生命周期内都可以对其操作 临时对象在返回完了之后生命周期还没结束吗?那那什么时候结束啊?是不是随机、不定的啊? 一般临时对象的生存期至是完全表达式求值结束时结束。 也有特殊情况 ...


0

//model1.h #ifndef MODEL1 #define MODEL1 #include <iostream> // 声明部分 template <class Type> class QueueItem; template <class Type> std::ostream &operator<<(std ...


0

wchar_t code = L'\u4e0d'; 你这个是一个字符,不是字符串,它的值就是无敌的45755,45755要通过MessageBoxW这样的东西找到对应的字体显示,但是MessageBoxW接收的是以0结尾的字符串,所以要`wchar_t code[] = L"\u ...


0

不需要这样复杂,zlib库设计的满成熟的,基本原始的库不需要作什么复杂改动,直接链接到程序中就可以了; 个人推荐使用完整的zlib源码,而非zlib的开发库(个人喜好):至少不需要到处拖着个zlib.dll ...


0

将项目属性改为使用多字节字符集即可,不要使用unicode。 用wcout


0

不能超过 摘自APUE Since the starting offset of the mapped file is tied to the system's virtual memory page size, what happens if the length of the mapped region isn't a multiple of the page size? As ...


0

不对, 引用在初始化之后,就没有任何操作可以操作引用本身.而是将任何操作都视为对其所绑定的对象的操作. 所以. int&k=j;//这里的k 不是j 的引用,而是j所绑定的对象(也就是i)的引用. ...


0

你应该发送消息WM_CLOSE. 如果还是不行,你要得到进程句柄,然后调用API函数 TerminateProcess去杀掉这个进程。


0

virtual 函数其实是通过一张 虚函数地址表 来查找的。 而且一个虚函数只在 表中共用一项(Base virtual function address 和 Derive virtual function Address) 所以一个时间只能存在一个 地址。具体是哪个要 ...


0

template<typename T> struct count<T>{ static const int value = 1; };


0

因为客户端关闭,服务端read始终返回0并且可读,一旦read==0就应该close(fd);然后从epoll中remove掉这个fd.


0

赋给了函数的栈内的临时变量i 这个i并不等同于a,f(a)传参时,只是把a的值传给i,返回i的引用,然后把1赋给这个i,所以并不影响a,其实我有一点不明,这个局部变量不是在函数调用后释放了吗?怎么还可以赋给他值 ...


0

应该是可以的。从实现的角度讲,如果是个指针,绝对可行,只要对象的空间已经被确定了。引用应该没什么区别。使用上只要注意不要在构造函数中去使用这个引用,是不会有什么问题的。 ...


0

LZ代码里问题是因为SetRange这个函数,10451552溢出了short,用SetRange32。 其实最好还是自己转换百分比。。。哪天溢出了32bit咋办


0

GlobalMemoryStatus 识别不了大于 2GB 的内存,应该用 GlobalMemoryStatusEx system("systeminfo >si.txt"); //然后读文件si.txt的内容 (^_^)


0

这段代码就是逐条记录的把BOOK数据读取到内存中。 首先初始化top为-1(因为数组的记录下标是0,当然,这样定义也跟后面使用top的策略有关)。 接着以二进制流的形式打开数据文件 第三,以循环的方式从数据流中读 ...


0

66也就是B,这下我明白你要什么了。你的文件是个文本文件存了“EB 09 AA F5 。。。” 用istringstream应该就可以了,下面是个例子,你把我的常量换掉就可以了。 #include <sstream> unsigned int a; ...


0

vector 有两个模板参数,只不过其中的一个是默认参数. template <typename T, template<typename,typename> class CONT> class A { // };


0

LINUX API: stat or lseek C API: fseek + ftell C++ API: seekp + tellp or seekg + tellg


0

例如简单例子 : `int a[][3] = {1,2,3,4,5,6}; //这样写是没有问题的。` 可以很明显的看出第一维的维数。 当然,也可以这样想,第一维的个数实际上就等于`sizeof(a)/(3*sizeof(int))` 至于编译器怎么理解的,不是 ...


0

如果要改变指针的地址,传递参数的时候用** void CircleDelete::Delete_Node(struct Node* &p)//传引用 { struct Node * s = p; if(length == 2) { p->next->prior =p ...


0

是你一开始的string对象的内存容量不够,导致后来输入后,拷贝对象处错了 数组从0开始 接受到的num 最后一个为num-1 for (int i = 0;i < num;i++) { student[i].input(); } ...


0

你的管道阻塞了吧,那边没东西写入,这边一直在等待 把你的case处理开一个额外的线程去做,否则管道阻塞的话,会导致主线程的卡死(主线程是UI),那么自然就出现了未响应,因为消息没法接受了 读完后,要释放锁。 ...


0

template<class _Ty, class _Ax = allocator<_Ty> > class vector { //vector有个缺省模版参数,所以模版参数列表与指定的一个不一致,所以不行 };


0

没太看明白你的问题。指出一点: 针对<br> <code> float* Vector3::Getfloat()<br> {<br> float tempf[3];<br> tempf[0]=x;<br> tempf[1]=y;<br> tempf[2]=z;<br> return tempf; }//但返回临时变量的指针 ...


0

要知道union是不会增加空间的,先理解一下union。这样最省事了, .... .... union { struct { float x; float y; float z; }; ...


0

case WM_NOTIFY: { if(IDC_SLIDER == wParam) { NMHDR* lpnmh = (LPNMHDR)lParam; if(NM_RELEASEDCAPTURE == lpnmh->code) { .... } } }


0

1、bf和9c已经超过[0,128]的范围,并且用%i输出时,已经强转为int类型了,而不是char类型了。 2、反序是因为大端字节序和小端字节序的问题。windows下用的是小端字节序,所以看起是反序的 ...


0

0xff ff ff f5 你应该认为-11是0xff ff ff f5,至于当做有符号还是无符号来解析是自来决定的,不是CPU决定的。


0

明白为什么这么多人人云亦云,为什么不自己看看IL呢?只有Gray Zhang指出了会被编译器优化,这才是正解(贪心狸猫说的也是正确的)。看C#代码: static void DeclareInTheForLoop() { for (int i = ...


0

函数参数的求值后,进入函数体前,是一个顺序点. 还有先 用 再 ++ 的说法是不准确的.所以无法解释这个问题. 应该说, i++ 这个表达式的值是i被修改之前的值. 而其中"i被修改" 这一个副作用 则在下一个顺序点之前完成. ...


0

在调用任何成员函数(除了静态成员函数)的时候,编译器都会将对象的指针传给this。这意味着,程序指针一旦进入任何非静态成员函数,this指针就有值了。 ...


0

那是因为你写入的是 fwrite(Items[i].c_str(),sizeof(Items[i])+1,1,ItemsToExecute); 这样写肯定是不对的。items作为一个对象,里面肯定有其它的数据的,你写入文件后乱码就对了,不乱码才不对呢。你需要 ...


0

#include <stdio.h> #include <stdlib.h> #include <string.h> class CTest { public: CTest() { printf("in ctor\n"); nA= ...


0

typedef template <class T> struct StackNode { SElemType data; StackNode *next; }* LPXXX; 是不行的, 模板类需要实例化后才是一个类。 如 typedef stack<int>* LPStackInt; typedef ...


0

使用cpp中的mutable. 突破const: const固然是个好东东,但是有的时候可能不爽const的限制,比如某些时候我要修改const的值怎么办呢?此时可以使用const_cast来帮忙了。请注意,const_cast是运算符(关键字)而 ...


0

当你调abc(3)的时候,编译器会根据模板帮你生成void Person::abc(int); 当你调abc(stu)的时候,编译器会帮你生成void Person::abc(student); 都是内联的


0

# 3ds Max Wavefront OBJ Exporter v0.94b - (c)2007 guruware # File Created: 21.04.2011 16:40:09 # # object Box01 # v -8.85 -19.88 0.00 v -8.85 6.92 0.00 v 36.11 ...


0

因为A中没有f这个函数。 楼主知道A *b = new B;这句话的含义吗?我来说说我的理解,供参考: 1. B是继承A的 2. 那么B对象中有一块内存用于存放A那一部分内容的,包括A中的私有成员变量都会存放在这块内存中,只是 ...


0

HANDLE hReadPipe = si.hStdInput; 输出流重定向了,当然控制台上看不到了。 如果你需要屏幕输出我只能用一种方法: 那就是在父进程中 si.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE); 在屏幕和键盘 ...


0

list有自己的排序算法。 `ilst.sort`试试 list容器的sort成员函数是针对 list容器的元素排序的(与STL中的sort算法函数不同,sort算法只对随机迭代器有效,不能用于链表容器的元素排序)。 ...


0

istream::failbit The last input operation failed because of an error related to the internal logic of the operation itself. 找点资料你看下


0

void Gb2312ToUnicode(WCHAR* pOut, const char *gbBuffer) { ::MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,gbBuffer,2,pOut,1); return; } void UnicodeToUTF_8(char* pOut,WCHA ...


0

原因是你定义的<操作符不严格,你要知道STL的<要严格定义的。因为要根据<来派生出>,==。 所以你需要把你的<仔细检查下,看是否对于每一个成员都能保证使用<获得>,==的效果。 ...


0

C++导出, extern "C"定义导出函数. C++引用, extern "C"声明导入函数. C引用, extern声明导入函数.


0

sizeof求的是静态类型,typeid求的是动态类型. 你这样的show虚函数会导致调用不同的show函数. 只要这样比较就可以知道了: Father* p = new Son; std::cout<<typeid(*p).name();//在Father有虚函数的情况 ...


0

b1 = &a; 其实需要调用赋值函数,但没有,就先构造一个临时对象,再调用默认的赋值函数 b1.operator = (&a) 将实参&a传给默认赋值函数的形参,形参调用了 B(A * a)构造函数,赋值函数跳出的时候形参自动析构 看 ...


0

HWND hWnd = FindWindow(NULL, _T("xxyy.txt - 记事本")); hWnd=FindWindowEx(hWnd,0,_T("edit"),0);


0

dest都自增多少次了? address记录了字符串开始地址,最终返回它。


0

你在你这边 和客户那边 使用了不同的结构体? 我感觉是不行的 你在你代码里写个class A{};和客户代码里写个class A{}; 他俩产生的对象 能兼容么?肯定不兼容 教你个方法 你写个算法 把结构体里的东西 全部弄 ...


0

当然可以。 不过你这是比较两个对象的指针哦。如果要比较两个对象中的内容是否一样,需要重载==操作符,比较时最好不要向上转型到A*


0

不是你函数本身的问题,而是std中包含了如下的函数,与你定义的恰好相同。 所以指针可以,引用不行了 template<class _Ty> inline void swap(_Ty& _Left, _Ty& _Right) { // exchange va ...


0

VC说:使用 implements,我岂不是和 Java 同流合污了。 这个不是C++的技术。。


0

const对象调用const函数, 非const对象调用非const的同名函数。


0

第一个当然了 因为你无论循环到什么时候至始至终都是在一个变量也就是一块内存上操作,所以只有一个值也不难理解 第二个 每次压栈都是一块新的string对象 貌似这和动态分配没多大关系吧 ...


0

本身这个代码就有问题,%i等同于%d,运行这个结果t中的内容变为"1310",加上字符串结束符,应该有5个字节,当这里指定义了2个字节。 char t[2]; wsprintf(t,"%i%i",'\r','\n'); 看来比较合理的解释是, ...


0

WaitForSigleObject(hEvent); 等待其他线程设置某个事件 打比方的话,就是你站在某个地方,声明“除非捡到一百元否则我就不走了” 这时候应该别人向你脚下扔一百元,而不是你预先在一百米外放了一百元——不捡到 ...


0

void edit_string::charu(char p) { char *newstr; int length=strlen(str); newstr=new char[length+2]; strcpy(newstr,str); for(int i=length-1;i>=guangbiao;i--) newstr[i+1]=news ...


0

class String { char* str; public: String() { str=NULL; } String(const char *p) { str=new char[strlen(p)+1]; ...


0

CDATA包裹二进制数据。 如果你不想用CDATA,也可以将所有文件里的特殊字节转化为实体,比如你百度一下这个函数:php htmlspecialchars,这样二进制数据就不会和xml的<>之类的符号冲突了,在对端`htmlspecialchar_de ...


0

[http://msdn.microsoft.com/en-us/library/windows/desktop/ms682396%28v=vs.85%29.aspx][1] HANDLE WINAPI CreateEvent( __in_opt LPSECURITY_ATTRIBUTES lpEventAttributes, __in BOOL bManual ...


0

#include <iostream> using namespace std; class CA { public: CA(void) { ++CA::ms_iCounter;cout<<"a"<<endl; } ~CA(void) { --CA::ms_iCounter;cout<<"~a"<<endl; }


0

#include "stdio.h" #include "stdlib.h" typedef struct BTree { int data; struct BTree * lchild; struct BTree * rchild; }BTreeNode, *PBTree; void Create_Tree ( PBTree *T ...


0

在C++中,对无參构造函数的调用: Counter counter; 等价于 Counter counter(); 或 Counter counter = Counter(); 对于有参函数调用 Counter counter = 5 等价于 Counter counter(5) 或 ...


0

(1)仅仅是释放指针所指的堆内存,并没有删除指针本身。 (2)才是真正将指针本身从List中删除。 准确的说第二个什么也没做,并没有设置为NULL,只是令size = 0了而已。 ...


0

1. 研究一下Stanley B. Lippman写的Inside C++ Object Model 2. 一个进程在内存中的布局 [http://blog.csdn.net/pathuang68/article/details/4090690][1] 3.看看深入探索C++对象模型 [http://download.csdn.net/d ...


0

因为输入流一旦发生错误,就会停止任何输入。 调用cin.cleat()是让输入回到正常状态,所以就可以可以输入了。


0

DWORD WINAPI CThreadTestDlg::TestThreadProc(LPVOID lParam); 线程函数有两种: 1,全局函数:`UINT ThreadFun(LPVOID p);` 2,静态成员函数:`static UINT CThreadTestDlg::TestThreadProc(LPVOID p);` ...


0

把mfc主窗体的xxxxDlg.h头文件包含进来,然后 CXXXDlg *pcuuwindow=NULL; //引入头文件,定义一个窗口类的指针 pcuuwindow=(CTestDlg*)(AfxGetWinMain->()); //获取主界面窗口的句柄,强制转换成窗口类指针 ...


0

tlog.write()函数做个重载不就行了 说是未知,其实你还是知道不是int就是string对吧


0

/** * @file simple.cc * @brief * * @author garcia.wul (garcia.wul@alibaba-inc.com) * @date Jun 24, 2010 2:59:05 PM * @version 0.0.0 * */ #include <boos ...


0

你是否使用了unicode呢??如果是的话,请把你的char 修改为TCHAR吧。然后strcat好像也需要用宽字符版的。 "whos ies didi"修改为_T("whos ies didi") ...


0

template <class T,class U> T fun1(U a,U b) { return 1; } 不能从函数的返回类型推导出 T ,所以T要出现在函数的参数列表里面才可以<class T,class U> ...


0

只要你能保证你要结束的线珵在执行的任何一点对程序的影响可以无视,你可以用TerminateThread, 否则用全局变量做个开关,在线程循环条件中按条件跳出。 ...


0

内部的printf接口需要改变一下,模仿vprintf即可,给你写了一段示例,希望你能从根本原理认识这个问题: #include <stdarg.h> void va_start(va_list ap, last); type va_arg(va_l ...


0

(1) 定义怪兽的类的指针p (2) //生成怪兽对象 (3) //生成Boss对象 比如怪兽有多少等级。class A;(怪兽的基类) class SmallA:public A;(SmallA为小怪兽) class BossA:public A;(BossA表示Boss类型的怪兽) 那么( ...


0

这个完全可以再头文件里声明 源文件里包含 比如 你完全没必要在 ReIncMgr.h里 写 #pragma once #include "ReIncMgr.h" 而是 #pragma once class CReIncDlg; 然后再 ReIncMgr.CPP里 写#in ...


0

调整一下声明 class B1: A1 { public: int b; //声明为public }; cout << offsetof(B1, b)<<endl; 你可以看到便宜的内存为4,所以就是8咯。看内存对齐,就用这个offsetof宏。 ...


0

对于vector中sub_table对象,使用clear()是可以进行清理的。 sub_table *p=new sub_table; 这里的p,在你用完之后,要使用delete p; pvector=new vector<sub_table>; pvector也需要delete pvec ...


0

select并不是并发,而是IO多路转接 当你有多个socket或多个连接时,你不知道那个连接有数据到了,如果用纯阻塞时socket,一个一个等,没有数据的会阻塞有数据的,效率很低 如果用了select,select本身会阻塞,当有 ...


0

有个技巧,你分两个文件写,但是源文件不要include头文件,而是头文件include源文件,这样在预处理时又会合成一个头文件 这不算奇技淫巧,C++ Primer有直接介绍的 ...


0

因为这句话: p[i] = new char[72]; `p[i]`指向的是个数组,所以需要用`delete[] p[i]`;


1

private属性不希望派生类的方法直接使用但允许派生类通过基类的public/protected接口间接访问(任何继承模式),protected属性与之相反。 private/protected继承表示基类用于派生类实现,public继承表示派生类is_a ...


0

因为你定义的是char*p[600000]; 所以p[600000]是一个整体了。 这是一种内存分配策略. 知道有这么回事就行了.


0

#include <iostream> using namespace std; int main() { int n; while(true) { cin>>n; cin.clear(); cin.ignore(numeric_limits<stream ...


0

静态数据成员的访问要用类名::数据成员名这样的方式,它不属于任何对象,只属于类。所以不要在构造函数里初始化它。 此外,你既然把它定义成了一个数组,当然要用访问数组的方式去访问。 例如: ...


0

可以使用模板的静态多态,WTL里就是这样用的,比如 template <class T> class B1 { public: void SayHi() { T* pT = static_cast<T*>(this); // HUH?? 我将 ...


0

这种情况是“什么事情都不做”。 不过内置类型也是有默认构造函数的。楼主可以试验一下如下代码: int i = int(); double d = double();


0

模板不是那样用的,你可以以下面的模子为起点,看看能不能达到你的目的。 template <typename t> class allocate { public: ~allocate () { } allocate () { } public: t* a ...


0

感觉你中间有几个问题: 1—— 你是要对数据进行追加,追加的数据是一个LIST,通过序列化为二进制流后追加。 这样的问题。。。很明显,假如追加成功的话,你这个文件里的数据将是多个LIST数据,你还能通过对这个 ...


0

a(int x[3]) { for(int i=0;i<=3;i++) b[i]=x[i]; } 改为 a(int* x) { for(int i=0;i<=3;i++) b[i]=*(x+i); }


0

这个声明,有时候被称为前向声明(forward declaration),在程序中引入了类类型的B.在声明之后,定义之前,类B是一个不完全类型(incompete type),即已知Screen是一个类型,但不知道包含哪些成员. 不完全类型只能以有限 ...


0

wParam或者 lParam可以作为指针传递的,所以你可以把你的参数定义为一个结构体,然后将结构体的地址传递过去


0

friend Complex operator +(Complex&,Complex&); 改成 friend Complex operator +(const Complex&,const Complex&); 下面函数的实现部分也改下,应该就可以了。 问题不在于转换构造本身,而在于 ...


0

下面是我的一段代码(参考这个例子): void __fastcall FormCreate(TObject *Sender); void __fastcall BBtnZoomInClick(TObject *Sender); void __fastcall BBtnZoomOutClick(TObject *Sender); ...


0

virtual 继承的时候还有一个虚基类指针,所以d1是 12. class DerivedFromTwo: virtual public Base1, public Base2 这个是12则说明 Base1和Base2的vptable在DerivedFromTwo的布局中进行了合并, ...


0

在这个函数里面加个判断队列是否为空。 void display(sequeue * q) { if (empty(q)) { printf("队列为空,显示失败!"); exit(-1); } int i; ...


0

这两个构造函数不等价。 第一个构造函数在执行时,首先调用基类的构造函数TableTennisPlayer(); 第二个构造函数在执行时,会传进去一个已经存在的tp对象(const TableTennisPlayer & tp),并且对该对象调用Table ...


0

GetShortestHeightRect(std::vector<CRepeatRect>&vecRepeatRect,std::vector<CRepeatRect>::iterator& indexIter) { indexIter=vecRepeatRect.end(); return indexIter; } 如上,两个不同的vector ...


0

vector是一块连续的内存的,end这个迭代器是指示你当前实际存储的下一个位置而已,而不是vector占用的内存的最后位置。vector是动态内存管理,当你插入一个数据的时候,vector发现已经申请到的内存不够用了,就会重 ...


0

void getNext(const int* &a, int* &next, const int length) { int i = 0; int j = -1; next[0] = -1; while(i < length) { if(j == -1 || a[i] == a[j]) ...


0

不会,局部静态变量存储在全局变量存储区,对于未初始化的局部静态存放在.bss段


0

24: struct c2: c1 “{” 31: }“;”//这儿错了。。


0

CClass::CClass(char *Name,int Num) { name=new char[strlen(Name)+1]; strcpy(name,Name); num=Num; } 原因是你把指针指向了字符串,而不是自己去申请内存。后来居然还用delete ...


0

我们可以定义如下的节点: 1 template <class T> 2 struct BinaryNode 3 { 4 T element; 5 BinaryNode *left; 6 BinaryNode *rig ...


0

#include<stdio.h> #include<stdlib.h> #include<malloc.h> void func(int n, const int r, int res[], int cnt) { if (r == cnt || 0 == n) { if (r == cnt) ...


0

stringstream sstrm(str); 这一句只是用str来初始化sstrm,并不是说要对str进行操作


0

将GBK中的每个汉字及其多音字对应的同音字都利用tts API转换为wav文件。 //GBK汉字内码范围(不包括A1xx~A9xx的标点符号英文字母特殊符号等) //区码 ,位码 //81-A0 ,40-7E 80-FE //AA-AF , ...


0

image还没有分配空间, 另外 *(image->samples) = (SAmple)bmp_data; 应该改为 image->samples = bmp_data;


0

sprintf_s(numPro,DIGIT,"%d",i*j); 应该是DIGIT+1把,sprintf是带结束符的把


0

`-.`引起的问题 只要将[]中的-放到最后 "`<[a-zA-Z0-9.-]+>`"就没问题了。


0

因为:胡明凤、潘科荣不会做把字句转换成被字句的练习,请家长多说一些把字句让孩子转换成被字句。 这里面标成红色的两个字凑上了。把“成”字的后半截代码和“被”字的前半截代码合起来正好和“杀”字的编码相同。 ...


0

不指明会从调用实参的类型中推导模板形参类型。 template<class T2> void fun() 你这样的必须指明,是因为没有参数可供推导,改成这样就可以推导了。 template<class T2> void fun(T2); ...


0

因为选择的是第一个重载的所以出现转型错误。 你可以`c=static_cast<const test&>(b)[0]`这样试试


0

load_image 函数如下: SDL_Surface *load_image( std::string filename ) { SDL_Surface* loadedImage = NULL; SDL_Surface* optimizedImage = NULL; ...


0

你的数据行4,列5,到4循环就结束了,还没和5比较 //这个for要写成两个,因为一个要表示行数,一个要表示列数,你的数据行4,列5,就搞成4可以了。。 for(k=0,temp=0;k<lie,temp<hang;k++,temp++) { ...


0

//显示 关于 窗口 void ShowAbout() { about1^ aboutDialog = gcnew about1; // Show testDialog as a modal dialog and determine if DialogResult = OK. if ( aboutDialog->Show ...


0

void Test(CString m_str1,CString m_str2="default");


0

你可以在每个case语句下,增加一对{},在{}中你可以定义变量,但该变量的作用域就在那对{}内


0

你只是对数据包具有读的权限,而没有修改的权限。你读的数据包是是从网卡上读取的,应该是一个拷贝,而这些数据报会按照协议栈是本主机的请求的数据包还要提交到应用程序,比如浏览器。你从网卡上读取的数据包不仅是 ...


0

#include <afxdisp.h> #include <winbase.h> #include <stdio.h> #include <stdlib.h> typedef unsigned __int64 UINT64; UINT64 uiCurtime,uiBaseTime,uiResult; //uiCurtime 为相差时间 uiBas ...


0

这里是初始化,所以直接调用拷贝构造函数. A a=4; 的写法等同于 A a(4);


0

这需求用ofstream不是很容易就能实现了么?跟用cout一样的。 fstream ostream ofstream ifstream iostream 这几类的关系图 ![alt text][1] [1]: http://www.cplusplus.com/img/iostream.gif ...


0

工程建错了,建Windows工程,而不是Console工程。


0

函数: strings(char* s) { ... } 调用: 1. char* s="this is a test string."; strings((char*)s); 2. char[] s="this is a test string."; strings(s); 3. char* s ...


0

不知道 `boost::shared_ptr` 具体怎么实现的,不过在 `std::shared_ptr` 实现里面(其实现严重参照`boost::shared_ptr`),最后的 delete ptr; 中的 ptr 类型是 B*。 你可以在 ~A 和 ~B 中分别输出不同的信息,会看到 ...


0

你用multimap吧,这样key(姓氏)是可以重复的,参考下面的代码: #include <map> #include <iostream> #include <string> using namespace std; int main(int argc, char** argv) { ...


0

方法1、可以定义一个全局变量用来做数据交换用。 方法2、可以在A中声明B的对象,再在里面进行数据交换。例如:B b;i(i为A里面的对象)=b.i(b.i为b里面的对象)= ...


0

判断`hst = gethostbyname((LPCTSTR)m_strName);`是否获得正确的值。


0

触发的事件分为两种,一种是accept接收新的链接后有数据到来,这时候需要比较这个new_client_fd上是否有数据到来,另一种是socket建立后负责listen的fd是否有新的连接请求,如果有就调用accept接收这个新的链接,并 ...


0

主要是由于CRT库造成的,重载new/delete,不使用malloc/free分配内存,换成RtlAllocateHeap之类的 dll中可能调用了类似malloc的CRT函数来分配内存,由于CRT本身的原因不允许跨模块释放 ...


0

#include<stdio.h> #include<string.h> typedef unsigned char BYTE; static BYTE base64_map[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; static BYTE ...


0

引入内联的目的是消除函数调用时的时间开销,它通常用于频繁执行的很短(一般只有1~5行)的函数.如果函数中有循环或递归,用于调用的时间就可忽略不计,失去了内联存在的意义.如果仍坚持用内联,不仅使主调函数变得臃肿, ...


0

iterator 不支持 < 运算符。 仅仅支持 != 运算符。 所有, STL 算法使用的都是 first 和 last 。 而不是 first 和 second. 只用两个容器之间的算法才是。 ...


0

两个大于号连在一起,被认为是流操作符了,要加空格 `B <C <T> > b`//我在看C++primer puls上面说过,两个大于号中间最好空格,你这样子的定义貌似没问题,但是你中间C <T>的T应该是具体的类型才行,当然可以 ...


0

template <class T> SLNode<T>::SLNode() { head = new LinkedNode<T>();//<-------------------------初始化 head->next= NULL; }


0

只能创建以后再调整。你可以变通一下的:用AdjustWindowRectEx从你要的客户区大小计算出窗口大小,再根据计算结果创建 用CreateWindow()创建的窗口里面设置的窗口长度和宽度是指整个窗口,而非客户区,所以需要知 ...


0

void multimatrix(double **&Array1,int row1,int col1, double **&Array2,int row2,int col2, double **&Array3,int row3,int col3) { for(int k1=0;k1<row ...


0

assign只有这几种用法吧: 1,s.assign(s2); 用s2的副本替换s 2, s.assign(s2,pos2,len);用s2从下标pos2开始的len个字符副本替换s 3, s.assign(cp,len);用cp所指向数组的前len个字符副本替换s 4, s ...


0

因为你这里给的例子根本不需要删除s。 这里既不能初始化s,也不能删除s,如果你加了这两个中的任何一个操作,编译就过不了了。 你给的例子中的share_ptr需要的只是一个符号而已,并没有用到s的内容。 如果你想编 ...


0

sizt_t是C++的一个标准的typedef.全局有效,定义在全局名称空间中 size_type是STL定义的,只在namespace std中有效 VC6中定义size_t为typedef unsigned int size_t size_type应该是C++为例如string类和许多其他库类 ...


0

第一个,浮点数无法进行位运算. 第二个, 强制转换过,只是值转换,无法达到目的先不说,还有 转换后的结果是unsigned long ,你赋值给float自然就悲剧. 解决方法:再次封装,但是无法解决常量问题. #define Lit ...


0

struct //这里怎么没有结构体名字? { int iIndex; TCHAR *szLabel; TCHAR *szDesc; }sysmetrics [] = { SM_CXSCREEN, TEXT("SM_CXSCREEN"), TEXT("Scree ...


0

int val=50; string str; stringstream ss; ss<<val; ss>>str; cout<<str;


0

COleDateTime COleDateTimeSpan #include <afxdisp.h> #include <stdio.h> #include <stdlib.h> int main(int argc, TCHAR* argv[]) { COleDateTime t; COleDateTimeSpan ...


0

如果要使用类中的成员等,需要看得见类的定义,修改如下: #include<iostream> using namespace std; class A; class B { public: void set(A &a); }; clas ...


0

stl用<来排序. 等于是 `!(a<b) && !(b>a),` 如果<的语义是<=,那么 等于永远不会是真.


0

#include "iostream" typedef int Stutus; typedef int Elemplty; #define OK 1 #define ERROR -1 using namespace std; typedef struct DoubleNode { int data; struct D ...


0

`cursor=width*height;`这个height调用的是你函数参数中的height,不是你类中数据成员的height,类 中成员函数中变量的查找是先在该函数中进行查找,如果找到了,就不再进行查找,如果找不到,就去类中的 数据成 ...


0

DWORD WINAPI WaitForSingleObject( __in HANDLE hHandle, __in DWORD dwMilliseconds ); VOID WINAPI ExitThread( __in DWORD dwExitCode ); 线程函数: WaitForSingleObjec ...


0

主要问题就是个const的问题. 函数后面加const代表 *this是const. 同样,对于一个const的对象,能访问的成员函数也只有加了const的. 1.能加上const就加上,所以,如果那个不改变类的成员,那么就可以加上 2. bool ...


0

`SetViewportExtEx(hdc,cxClient,cyClient,NULL);` 中 cxClient与 cyClient都为正数则与默认方向相同屏幕左上角为原点,向下为Y轴正向,向右为X轴正向,若cxClient为-cxClient,则向左为X轴正向。 建议你详细看看 ...


0

链接说的是最新的c++标准,而且有限制,必须是同一继承体系中的类型 返回的类型一个可以是基类,一个可以是派生类类型。


0

放在哪里都无所谓,比如 const char * 和 char const * 是一样的,关键是看const出现在*的左边还是右边。再比如: const char * 和 `char * const`就不一样了。 ...


0

#include <stdio.h> #define n 10 int compare(int x,int y) { /* compare x and y,return -1 for less than,0 for equal, 1 for greater */ if (x < y) return -1; else if (x ...


0

#include <stdio.h> #include <windows.h> #include <conio.h> #include <tlhelp32.h> int main(void) { HANDLE hProcess=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, ...


0

unicode就用个map代替数组吧,如果非要用的话。大概就是这么个意思,java写着方便。 public static int shiftAnd(String str, String pattern, int pos) { Map<Integer, Integer> map = new Hash ...


0

#include <stdio.h> #include<unistd.h> #include <stdlib.h> #include <string.h> int main() { int i = 0,j; char buf[256]; char *cmd; char *argv[1 ...


0

g++4.6.1没这个问题. 怀疑是vc6.0独有问题


0

1.单核的cpu上,所谓的“并发处理”,其本质还是划分时间片“一个个的处理”,所以,看似并行,其实还是串行。并发处理,要么用在两件“非强关联”的相对独立的事情上,要么为了加速用户响应。 2.就冒泡排序而言, ...


0

所谓互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 更新火车票总数是一个临界区,那么线程在访问时就必须加锁进行互斥访问。 ...


0

不可以.把他当做char来写.ostream_iterator 改为 ostreambuf_iterator好点儿. #include<functional> #include<algorithm> #include<iostream> #include<fstream> #include<iterator> us ...


0

#include "stdafx.h" #include <stdlib.h> #include <iostream> using namespace std; class Operate { public: Operate(int iNumber1, int iNumber2):m_iNumber1(iNumber1),m_iNu ...


0

string a; a[i]=toupper(a[i]); a 是个空串,未分配内存,你用下标访问肯定出错。 string a='swewee; for(int i=0;i<a.size();i++) { a[i]=toupper(a[i]); } ...


0

1. 假如你把下面的去掉你将不能直接使用QNode 而要使用struct QNode 2 假如你把上面的QNode去掉struct QNode *next;将没办法识别2.


0

子类和基类中的数据并不是一个数据,这是概念问题, 还有,执行完+=如果是全局变量,其值是会发生改变的。 继承是通过虚表指针只想相应的函数地址,从而调用相应 函数完成的。 ...


0

1.pop3不支持,但是可以获取邮件头 pop3 : m是第m封邮件。 top m 0 imap支持。 2. 邮件本来就是存储在服务器上的。只是你接收之后是否删除的问题。 ...


0

续行符。 表示这些都是在同一行。 因为宏定义只允许卸载一行,为了可读性,就有了 `'\'`


0

服务器的 while (1) { 开头加 memset(reBuffer,0,sizeof(reBuffer)); m_client = accept(m_sock,(SOCKADDR*)&remoteAddr,&nAddrLen); if ((m_client = accept(m_sock,(SOCKADDR*)&remo ...


0

pro定义是 unsigned int. 而你的vector是int. 改为 it = find(ptemp.begin(),ptemp.end(),(int)pro[i]);//pro[i]是由主函数传过来的数组


0

istream &str(cin); ==> get(cin);//这样就是调用


0

#include <iostream> class Test { protected: void (Test::*pFunc)(); public: Test() { pFunc = &Test::Func; } void Func() { std::cout << "Func()" << std::endl; ...


0

getop第第一个循环,应该是'\0'而不是'/0'. #include<cstdlib> #include<string> #include<iostream> #include<cstring> #include<stack> using namespace std; class cale { ...


0

FD_ZERO(&fdread); FD_ZERO(&fdwrite); FD_SET(ServerSocket, &fdread); FD_SET(ServerSocket, &fdwrite); 你永远只监听SERVERSOCKET, 不监听客户端了? select_result = select(0, &fdr ...


0

void Create_L(DuLinkList &L,int n) { L=(DuLinkList)malloc(sizeof(DuLNode)); L->next=L->prior=L; for(int i=n;i>0;--i) { DuLNode *p=(DuLinkList)malloc(sizeof(DuLNode)); ...


0

2改为2.0,6改为6.0就好了,pow没有int类型的参数


0

影响. 特别是互换位置的头文件有相互依赖关系的时候,而出错头文件里面有没有仔细检查包含的时候


0

char Urlrecv[100]; 把这个数组初始化下试试~~


0

#include <iostream> using namespace std; class A { public: virtual void fun(void){cout << '1' << endl;} virtual void fun2(void){cout << '2' << endl;} }; class B:pu ...


0

栈溢出了。 程序如下: #include<iostream> using namespace std; int IsPrime(int a,int b) { if(a==b) return 1; if(a%b==0) return 0; else return IsPrime(a ...


0

void add_item(const B& b) 改为 void add_item(B b)95 不能用bind1st 和 bind2nd 因为这是vs2008 和 vs2010 的bug... 没办法... 用for 循环,或者改参数95


0

放在函数末尾,如 void Person::show() const。 表示 *this是const成员。 放在 void之后,没用过。 但如果是放在如 int const funciton(); 这样的,是修饰返回值的,表明返回值是const的 ...


0

随机数种子只设置一次就好.. int GetRand1() { return rand(); } int main() { srand((unsigned)time(NULL)); int i; for(i=0;i<20;i++) cout<<Ge ...


0

1<<m 就是把 1左移m位,即2^m; 如:m=3时 1<<3 = 8; 即有如下 1-7种状态: 001->1 010->2 100->3 011->4 101->5 110->6 111->7 后面就会来判断每个数的 1 ...


0

case WM_CREATE: { LPCREATESTRUCT lpcs = (LPCREATESTRUCT)lParam; MyClass* pclass = (CMyClass*)lpcs->lpCreateParams; ::SetWindowLongPtr(hwnd, GWL_USERDATA, (long)pclass); }


0

#include <iostream> using namespace std; int main() { int n,a=1,b=2; cout<<"Please input n:"<<endl; cin>>n; for(int i=0;i<n-1;i++) { a=a+b; /// ...


0

我觉得是第二个 指的是多用户时的数据库操作 如果是第一个的话,用户就没有数据库连接的权利,因为执行连接关闭时极可能出错 ACCESS,sqlite这两个数据库如果都是查询的话可以并发 但是如果是写操作的话,就只能 ...


0

1、会。 2、不会。 3、分配到了。


0

#include<iostream> using namespace std ; bool swap(int A[], int i, int j) { int temp = A[i]; A[i] = A[j]; A[j] = temp; } int partition(int A[], in ...


0

A.大小为 2个int长度的一块内存. B。new内部的确是用的malloc


0

int a[2][2]={{1,2},{3,4}}; 一维数组指针 `int (*p)[2]` 他指向行例:他指向的第一元素为a[0],第二个元素为a[1];被指向的这些元素必须包含2个子元素; 数组指针 `int *p[2]` 你可以把他看成2个指针变脸,一个 ...


0

第一个问题:可以打印出来的。我估计是你不会正确的输入。 第二格问题:那句话没有什么错误,不过由于你的节点是在Create函数中创建的,所以只需要传递一个BiTNode的指针进去就可以了。 第三个问题:这个语句的意 ...


0

楼主说的现象应该不是关屏了,而是休眠状态,所有程序都被挂起了。 实现方案: 1.通过代码实现关闭屏幕,而不是休眠。定时触发,防止手机进入休眠状态。 2.使用OpenNETCF.WindowsCE.dll中的LargeIntervalTimer, ...


0

三个函数参数需要一致: void modify(void*) void insert(void*) void delete(void*) 1:定义函数指针 `typedef void(*fun_ptr)(void*);` 2: 定义方法 void setFuntion(fun_ptr fun){ fun_ptr ...


0

C++范儿。。。 template <class T> bool from_string(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&)) { std::istringstream i ...


0

你应该把你的printMember成员函数声明成成员模板函数 然后提供相应的偏特化的重载版本。 //-----------------------特例化的class Aggregate----------------------------------- template <typename ...


0

cout<<sizeof("he he")<<endl; //六个字节。最后的一个字节是'\0' cout<<sizeof(p)<<endl; //指针p大小是四个字节。 cout<<p<<endl; //打印p的内容 cout<<*p<<endl; //p指向字符串的首地址,*p取字符串 ...


0

一个由C/C++编译的程序占用的内存分为以下几个部分 1. **栈区**(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2. **堆区**(heap)— 由程序员分配释 ...


0

(int& i) 是必须的,(int i) 的时候 i+=add 只是自增 vi 每个元素调用 lambda 时产生的副本。 就好像一个普通函数,要想修改传入参数时需要用 non-const reference type. ...


0

#include<iostream> #include<time.h> using namespace std; int MyMax1(int m,int n) {return(m>n)?m:n;} inline int MyMax2(int m,int n) {return(m>n)?m:n; } const int NUM=100 ...


0

每个调用者自己存储一个时间,每次调用计时器的时候,将返回值存储在自己的变量里不就可以了吗?其实我比较奇怪楼主的需求,无论谁是调用者,返回的时间都是一样的,区不区分有什么用啊。 ...


0

const 修饰的变量所谓的常量属性是由编译器保证的 const int *pic=&i; 这里意味着编译器不允许你通过Pic修改i的值,但是你直接修改i的值是没任何问题的,因为i本身就没有所谓的常量属性。 ...


0

1)、const在前面   const int nValue; //nValue是const   const char *pContent; //*pContent是const, pContent可变   const (char *) pContent;//pContent是const,*pContent可变   char* ...


0

赋值那有问题,用这个吧,把你那个`const char* p[50]`的const去掉吧 strcpy(p[i],v[i].c_str());


0

试试用全局命名空间 CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,xxx,_T("Global\\xxxx")); OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,_T("Global\\xxxx"));92 ...


0

kill是把信号放入指定进程的消息队列,就返回的。 SIG_IGN的意思是实力该信号。但有些信号是不能忽略也不能改变处理方式的。 apue 中的原文是这样的 **If the call to kill causes the signal to be generated f ...


0

file.clear(); //添加,清楚所有状态(good state) file.seekg(0,ios::beg); // !!!!!!!! while(!file.eof()) //退出出时状态为eof {


0

不用 OpenGL 或 DX 一样画,GL 和 DX 只是硬件加速的接口,绘制速度快而以.然而有的必有失, GL 和 DX 能提供的功能却很有限.自然界中很大一部分光学现象, GL 和 DX 是无法模拟的.实际上 GL 和 DX 倒是只能绘制不太复杂 ...


0

你析构写错了 ~ShareClass(){ if(--sp->use==0){ delete sp; } 这样. 所以,上面是能析构的


0

你只需要在Point里面的构造函数前加Public就行了,不加的话默认是Private


0

你需要在OnInitDialog函数最后return FALSE; 如果用原来的默认的return TRUE;的话设置控件焦点是无效的


0

#include<iostream> using namespace std; class CA { int value; public: CA(int v) { value=v; } }; int main() { C ...


0

初始化的意思是把右边的东西往左边拷。"abcde"这样的东西存在于数据段,本身就有0,因此一共有6个字符。 `char array[5] = "abcde"`生成的代码就是,给array分配5个字符的空间,然后把数据段中"abcde"这6个字符拷贝 ...


0

这样试试 char strData[70] = {};//保存观测文件中每行前60位的数据 inputData.getline(strData,60); getchar();[code=C/C++][/code] char strFlag[30] = {};//保存观测文件中每行后20位的数 ...


0

问题1: 如果你写成DataType x,函数在接受该参数时就会对其进行复制,这样消耗的机器资源就更大些。而且在函数里改变了x的值的话不会影响到给它传递值的实参本身。比如说传给它的x原本是(1,2),你在函数里把x更改 ...


0

"LinkList.h" 里面有Node LinkList这些类的定义了吧? 把main函数下面的注释了. 或者"LinkList.h"重复包含了 在"LinkList.h"的最上面加 `#ifndef _LINKLIST_H_` #define _LINKLIST_H_95 最后面加 #endif95 ...


0

#include<iostream> using namespace std; main() { char ch; int num = 0; cout <<"输入字符串\n"; cin.get(ch); cout << ch << endl;//这样加一句然后分析下 ...


0

1.每次按按键的时候有down和up 两个状态的。窗口关闭后,正常情况下不能接受按键消息了,所以就不能触发。 2.调试和直接运行的路径默认情况下是不一致的,所以你最好用GetModuleFileName解析到绝对路径,然后再加以 ...


0

const Array &Array::operator=(const Array &right) const { ... } 参数表后的 const 才是 只读性 函数成员 的定义标记吧 const 是说 这个函数返回的值 会被分配到 只读的内存区中 ...


0

因为那几个函数没有实现吧... GetFirst LinkList(struct element* const ,int) 之前你的是下面的构造函数 template<class T> LinkList<T>::LinkList(T a[],int n); 而你调用的时候是上面的那个 ...


0

自己打断点调试下 如果要模拟a[1][1]这种操作,需要使用一个中间类来满足。 #include <iostream> #include <vector> using namespace std; class A { protected: int dat ...


0

直接用你的代码测试,结果基本还是一样.lambda版本要比functor快.因为你这个functor用了成员指针,而lambda中是直接成员调用. 只有icl版本,lambda稍慢于functor. 其实,lambda还能更快的.比如你这里的capture是[&],如 ...


0

class A; class B; class A{ public :int x; void Print(B b); }; class B{ public :int x; void Print(A a); }; void A::Print(B b){ b.x++;} void B::Print( ...


0

VS2010运行结果: fun2 was called! fun1 was called! 如果用的是VC6则可以换编译器了。


0

LZ这样没问题的原因是你返回的指针指向的是堆中的数据,他在函数返回时不会销毁,指针变量会销毁,但返回值复制给了main中的变量,所以正确 如果你返回一个指针,而指针指向函数的临时变量(在栈中),随着函数返回 ...


1

你的class在最后没有写上分号。


0

形参是指针,会直接改变实参的值。因为传的是地址,画画内存图就清楚了。 printf("%d\n",sizeof(a));的时候a是一个数组,其类型是int [5] ,sizeof操作符得到大小为:sizeof(int)*5=20 printf("%d\n",get(a));的时候 ...


0

childrenClass(int para1,int para2,int para3){ rootClass( para1, para2, para3); } 你这里构造的是一个临时对象,而不是初始化基类部分。google"初始化列表" ...


0

按照一般ide的思路, 应该是你可以生成并编写这个def; 但是如果没有编写的时候,ide自动帮你生成这个def。


0

void Execute() { (_receiver.*_action)(); /// 注意这个地方 } Command *a=new SimpleCommand<MyClass>(m,&MyClass::Display1);


0

1、 if(null == list || list.size() ==0 ){ } 2、使用第三方jar中的,如使用spring中的`CollectionUtis.isEmpty()` if(CollectionUtis.isEmpty()){ ...


0

自己建个函数类 然后用这类的数组 类的非静态成员函数有this指针,考虑自己加进去比较直接。或者直接做一个map作为类的成员,实现关键字到函数的映射。 记得有个专门的function库 支持成员函数的注册。 #inclu ...


0

Animal(5,6) 只是在Cow的构造函数中生成了一个临时变量,并没有改变自身对象的值. 正确的写法应该是 Cow的构造函数写成 ... Cow(int a) : Animal(5, 6){} ... ...


0

因为对象进行'='赋值时仅仅是把对象自身复制一份进目标里,而对象内部那些指针所指向的东西不会一起被复制。 这就可能导致两个对象里的指针都只着同样的一个动态存储区,而当你销毁其中一个对象时,它的析构函数可 ...


0

#include <stdio.h> #include <string.h> void Convert(const char *str, char *str1) { char temp[2] = {'\0'}; if (*str != '\0') { Convert(str + 1, str1 ...


0

先赋给了Y,再添加个函数setY(),然后设置断点,就很清楚了 #include<iostream> using namespace std; class Point { private: double x;double y; public: sta ...


0

b.j=2; b.a.i=1; 这两句不能放到函数外,拿到main函数里面


0

就是10块钱可以用0-n1张,5块钱可以用0-n2张,1块钱可以用0-n3张,动态规划或者递归都行, `dp[total][i]`表示用i...k这几种纸币凑total面值需要的最少张数。 ...


0

MSDN : type conversion [C++] 下的 arithmetic 顺序规则为: 1. 如果任一个操作数是long double,都转换成long double再进行运算 2. 不满足以上条件的情况下,如果任一个操作数是double,都转换成double ...


0

一、 面向对象,这个对象到底是什么? 这个对象不是C#中的实例,C#中我们把一个类的实例也叫做对象,这种对象严格的说应该是面向对象的编程实现(OOP)中的对象,面向对象编程,也不是面向类的实例编程。对象 ...


0

第一,重载运算符不必须const 第二,之所以编译器说你不加上const不行,是因为你让一个const对象调用了你重载的这个运算符 bool operator>(const RationalNumber &ration) return (ration < *this); rati ...


0

LCDKeypad lcd(); 这个不是生成一个对象,还是声明了一个函数,叫lcd,返回值是LCDKeypad


0

int a=0xffffeee3&0x00000000ff; std::cout<<setw(2)<<setbase(16)<<a<<'\n'; 宽度大于2仍将完整显示


0

因为remove是删除所有的,所以每次遍历整个链表找到所有的。 find,erase很明显就删一个,扫描量少。


0

数组名 取地址 拿到的是数组的地址 = 数组首个元素的地址 但是因为他的类型是a[5]的地址,所以&a + 1后, 指向的是下一个 a[5]的开始地址 可以想象二维数组的原理。 ...


0

编译选项开起了没? setting--->>c++---->>category组合框中选C++language---->>页签中勾选Enable Run-time type information(RTTI)


0

这个你要理解一下 TCP 协议的实现, 还有哪些东西是你程序里面写的,哪些东西是操作系统内核实现的。 TCP 建立连接有 3 次握手的过程,客户端连接的时候发出一个第一个包后可能产生的情况: 1. 目的主机关机,包无 ...


0

成员函数声明为const的意思是,不能通过this指针这个“路径”修改自身的值,但可以通过其他“路径”修改自身的值 const对传入的参数是否就是自身没有检查机制。 #include <iostream> using namespace std ...


0

【解法一】 除法、余数 可以举一个八位的二进制例子来进行分析。对于二进制操作,我们知道,除以一个 2,原来的数字将会减少一个 0。如果除的过程中有余,那么就表示当前位置有一个 1。 以 10 100 010 为例; ...


0

先看你每个小块是多少,那张图片能切成多少个你要的小块 给每个小块建一个结构体 包括这个小块的一些信息还有这个小块里的存储的像素 然后加载的时候 用多线程,每个小块的加载开一个线程 要把每张图片想象成二 ...


0

case WM_PAINT: { HDC hDC; PAINTSTRUCT ps; hDC=BeginPaint(hwnd,&ps); HDC DCMemory = CreateCompatibleDC(NULL);//建立内存兼容DC HBITMAP bitmap;//定义bitmap对象 ...


0

不就是回调js的函数嘛, CComPtr<IDispatch> m_spCallback; //成员变量 添加ocx接口 SHORT RegisterCBFun(VARIANT &cbFunName); // { if (cbFunName.vt == VT_DISPATCH) m_spCallback = ...


0

size_type count ( const key_type& x ) const;Count elements with a specific key Searches the container for an element with a key of x and returns the number of elements having that key. 这个成员 ...


0

有可能是编译器认为左移32位相当于没移位,直接给优化成左移1位了 相当于`*2`,所以就是`77*2=154` 像你这种超出了移动超出了32位那么就属于未定义行为了。 ...


0

伪随机数的特色就是如此,同样的种子下每次都输出同一个序列。前些天我写了个真随机数类,可以避免出现这样的现象,每次调用RandomDigit::RealRandom()得到的数字都是不可预测的,没有固定的序列。 [http://blog.cs ...


0

对二进制文件: fstream iofile("stud.dat",ios::in|ios::out|ios::binary);//打开文件 if(!iofile)//如果打开失败 { cerr<<"open error!"<<endl;//显示出错信息 abort();//程序退出 } 对AS ...


0

理解这个问题,需要一点编译原理的知识,在调用一个方法或者使用一个类的时候,本cpp作为一个独立的编译单元,可能并不知道某一个方法或者类型的符号是怎么样的,但是这时候不会出错,还是可以针对每个编译单元生成 ...


1

能相加的原因是因为调用了operator+操作符,两个char*,没有可以使用的的operator + 操作符自然就不可以了。 string operator+ (const string& lhs, const string& rhs); string operator+ (const char* lh ...


0

需要区分几个概念: 首先线程没有"子线程"的说法,有时大家会把执行到main函数的线程,称为主线程,这只是习惯性说法,所有的线程都是一样的,没有主次和父子关系. 另外就是工作组线程和UI线程(User Interface Threa ...


0

sscanf不能这样输入两个字符串,无法分隔 建议你把它送进一个字符串,然后写代码来拆开。


0

对于first,我记得是编译器会生成nontrivial default constructor ,即编译器会添加一些额外操作(比如,有虚 函数,那么这个构造函数就需要设定类实例的虚表指针;再比如继承自一个基类,这个基类有构造函数,那么 ...


0

int Getscore1() // 程序声明! int GetScore1() { return nScore1; } // 程序定义! 返回值为 int 的一定要返回一个整数! 有些编译器可以帮你做了!所以不写也不会出错!但是其他不敢保证! ...


0

把base(nam,sx,yer)写进leader()构造函数的程序里面这样可以吗? 不行 leader(char nam[],bool sx,int yer,char dpm[],char pst[]) { items--; strcpy(department[items],dpm); strcpy(post[ite ...


0

既然是结构体里面有CString类型的成员,你怎么可能用 `memcpy(&dlg.msgItem,&theApp.m_MsgStr[i],sizeof(theApp.m_MsgStr[i]));`这样的代码呢? 别用c的思想来玩c++ 直接用赋值的方式就可以了。 ...


0

如果一定要申请这么大的数组,我记得也可以在编译器里设置的。


0

你这是在栈上申请,在堆上申请会好。`UCHAR* p =new UCHAR[BUFSIZE];......do somting..... delete p;` 栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大 ...


0

#include<iostream> using namespace std; struct stu { int no; float eng,math,phy,sum; int rewarding; }; void sum_1(stu s[],int n) { ...


0

template<typename T> class tmp { public : T max(const T&,const T&); }; template<typename T> T tmp<T>::max(const T&a,const T& b) { cout << "普通版本"&l


0

直接发送的形式是所谓二层架构,优点是开发容易,数据读写效率较高。 再增加中间层则是所谓的多层架构,一般形式是把系统分层为数据层、业务层和表现层。 数据层不用说,当然是直接管理数据的,主要由数据库管理系 ...


0

是for语句使用的问题 for(i=0;*(p+i)!='\n';i++) //这一行 { *(p+i)=getchar(); } for(exp1,exp2,exp3) { 语句; } for语句是先执行exp1,然后判断exp2, ...


0

可以定义个结构体,将各个成员对应到这些数据。 直接从结构体成员变量中判断值。 如果知道前面说明性的字节的长度,直接用fseek 内存映射后,再偏移 ...


0

HTTP协议里规定了一份HTTP报文的结束符。 看RFC2616文档4.4节。 4.4 消息的长度(Message Length) 当消息主体出现在消息中时,一条消息的传输长度(transfer-length)是消息主体(messagebody) 的长度;也就是 ...


0

指针和引用的区别 (1)引用总是指向一个对象,没有所谓的 null reference .所有当有可能指向一个对象也由可能不指向对象则必须使用 指针. 由于C++ 要求 reference 总是指向一个对象所以 reference要求有初值. Str ...


0

template <class Category, class T, class Distance = ptrdiff_t, class Pointer = T*, class Reference = T&> struct iterator { typedef T value_type; typedef Distance difference_typ ...


0

put 函数返回的是一个对于全局变量的引用,就和直接操作全局变量一样楼主说的这个例子中 int &put(int n); 和 int put(int n); 功能上没啥不同。 如果vals不是全局的,那么int put(int n)是正确的,而` ...


0

先说声楼主最好还是把new,delete声明称static好些 把出错的行改成如下 B::operator delete(pb,cout); 即可调用到placement delete了,但是想法和楼主的有差距,这函数里面直接释放内存,就不会再析构了 貌似 ...


0

就说明CHAR是POD类型呀 在模板特化时候会用到 一般用户自定义类型就不行比如 struct Test{ Test(){} int i; };


0

最简单的做法 是把你里面的vector转成C数组. struct CSTest { TCHAR szTemp[32]; INT nTemp; int nCount; // 用于标示下面的数组多大 CSsubTest astTest[100];// 比如最大10 ...


0

template <class Type> class Stack { private: enum {MAX = 10}; Type item[MAX]; int top; public: Stack(); bool isempty(); bool isfull(); ...


0

#include<iostream> using namespace std; class CLocation{ private: double x,y; public: CLocation(double,double); friend double Dist(CLocation&,CLo ...


0

重载new操作符 #define new new(_NORMAL_BLOCK, __FILE__, __LINE__) __FILE__:编译时当前文件名 __LINE__:编译时指当前行数 _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _ ...


0

一个类的保护成员或私有成员只能被该类的成员函数或该类的友元函数来访问,外部代码不能访问,相对于B类中的函数fb对于A类中的保护成员变量a来说是外部代码不能通过该类的对象直接访问, 由于B类公有继承了A类,a在 ...


0

本质上都是unsigned整型值(比如int, long,long long)。正如你问题中所列出的那样,`size_type`与机器无关,而`size_t`与机器有关。 比如在16bit的机器上,`size_t`就是一个16位的无符号整数,而`size_type`就可能 ...


0

改成这样就行了 #include<iostream> #include<vector> #include<string> #include<stack> using namespace std; void main() { stack<string, vector<string> > sve; ...


0

template<class T, template<class> class Ary, size_t count> class Container { public: Ary<T> Arry;//这里只能定义类型,不能初始化,要在构造函数里面初始化 T& operator[](size_t index) ...


0

#include <iostream> #include <algorithm> #include <string> using namespace std; int main() { int c; string s="000001111111111"; c=3; sort (s.begin() ...


0

内联函数一般短是一方面,另一方面不要有循环和太多的判断, void test() { for(int i=0;i<1000;i++) {} } 这样的循环虽然简单,但运行时间远远大于调用函数时间,就没意义了。 内联函数应该 ...


0

就两个bug,不过你想要把每一步思考的过程都显示出来是不现实的 #include <stdio.h> #include <stdlib.h> typedef struct Qizi { int x; //x轴坐标 int y; ...


0

(a+b) == (c+d) 因为静态对象只有一个,那么(a + b) 和 (c + d) 返回的都是同一个对象,作==操作时自然为true


0

关键字 div、 scrollTop 轮询新内容-有的话-在div的innerhtml 中增加新的数据,用javascript 控制div的内容 。应该就可以实现滚动了。网上的这个内容很多啊 <style type="text/css"> *{font ...


0

C++标准规定main函数必须是int型,不再接受void型了。


0

因为`cout << **iter << "---" << (**iter++).size() <<endl;` `**iter和**iter++`的运算顺序是不一致的。如果说iter++这个先运算。那么当iter++达到了end()时候 前面的**iter 就会运行崩溃。 ...


0

size 和 length 是一样的. 只是 size 用于体现 string 是一个容器, 而 length 更具有字符串的语义. 至于 '\0' 的问题在于你构造的时候用的那个字符串, 构造的时候已经把 '\0' 后面的去掉了. 后面怎么操作都一样. 如 ...


0

template<class ForwardIterator1, class ForwardIterator2> ForwardIterator1 find_first_of ( ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 ...


0

static数据成员,必须在类外定义,不能在类中定义的,而且非const 静态数据成员不能在类中初始化, 比如: class a{ static int v; }; int a::v = 9; 还有const static数据成员可以在类中赋一个 ...


0

下面时源代码的运行结果: [root@localhost only_for_testing]# g++ test.cpp -o ts test.cpp:4: 错误:‘::main’必须返回‘int’ 下面是把main函数的返回值改为int并return 0之后的结果,其他代码没任何 ...


0

你试试把这句改成声明(不赋值) uint32_t tm1count = 0; 改成: uint32_t tm1count ; 然后在某个初始化函数中 tm1count = 0; 然后:`tm1count++;` 再然后: `extern uint32_t tm1count;` ...


0

第一个表示返回值的类型是const,你无法修改返回的值。 第二个表示传递的形参为const变量的引用。你无法在函数中修改f的值。 第三个是const函数,你无法修改this指针所指向的值··· ...


0

不一样的。前者会忽略white space。 比如文件内容是 abc 123 efg 456 使用前者则生成4个string,分别是`"abc" "123" "efg" "456".` 使用后者则生成一个string,即`"abc 123 efg 456"`。 ...


0

ifstream - input file stream哪来的out?? #include<iostream> #include<fstream> #include<iomanip> using namespace std; struct student { char name[10]; in ...


0

任何一个拥有逻辑判断功能的编程语言都能写出来。只是普通的过程语言写起来很麻烦,而专门的人工智能语言写起来就很容易。 c++当然也能写出来,问题是你要先定义对判定过程的各种处理,还要构建知识库等等。实在是 ...


0

typedef std::vector<OnLineUser>::const_iterator ITER; 改为:typedef std::vector<OnLineUser>::iterator ITER; 我只能说有可能是这儿的问题 还可以告诉你用下标是可以的,应该是你用的有问题 ...


0

string的构造函数不接受字符类型。 代码应该改成这样 class Book { public: Book():ISBN("\0"),name("\0"),price(0){};//注意双引号 void modify(); void show(); ...


0

分页是操作系统把虚拟内存映射到物理内存的使用用到的一种机制. 和程序没有关系, 当程序使用的内存超过了分页的大小时, 操作系统会自动把它映射到多个物理页面中去的. 完全不需要你操心. 堆栈是程序运行时用来传递 ...


0

你说的转换是用unordered_map替换map, operator==和hash函数可以用默认,需自己实现, struct myhash:unary_function<AgentSet,size_t> { size_t operator()(const AgentSet& a) const { ...


0

头文件中包含的函数定义必须inline(或者直接写在class里面,隐式内联) 这个是链接错误,不是因为头文件在一个.cpp文件中重复包含导致的。


0

HashTable(bool (HashTable::*compare_ptr)(const Value_Type obj1, const Value_Type obj2), unsigned long size = 100) : isEqual(compare_ptr) {} 对于上面这一句构造函数的参数列表中的第一个参数,不知楼主为 ...


0

因为终端是行缓冲,文件是全缓冲,你的输出printf没有\n,所以fork的子进程的stdin._iobuf里也有那句话,两个进程都结束的时候冲刷缓冲区都写到这个文件里了。 ...


0

1. 引用就是一个变量的别名,其本质还是变量自身。hanshu(&n)还是hanshu (k)仅仅是一种规定的表达方式而已。由于&这个符号的多义性,如果写成&n就会被理解成n的地址。 2. 指针作为函数的参数,那么传入函数内部的 ...


0

static inline char * strcpy(char * dest,const char *src) { int d0, d1, d2; __asm__ __volatile__( "1:\tlodsb\n\t" "stosb\n\t" "testb %%al,%%al\n\t" "jne 1b" : "=&S&quo


0

这个问题其实很好理解 c<<3后: ?????000 (1) c>>3后: 0000???? (2) 1=2; 所以移动后的数组是000??000的形式。说明1,2位和7,8位的01表达是一样的。其他位置都为0 所以就有四种可能 00,11 ...


0

KMP的思想是这样的假如有串 A = 'cabcaaabc' 若我有串abcab需要在模式串中查找,则对串abcab对其计算失效函数 a b c a b 0 0 0 1 2 现在来解释一下下面的数字,执行while循环的时候,每次查看当前字 ...


0

第一,多线程是操作系统的事情,C++和多线程没有任何关系。你不能指责中文数字没有证明哥德巴赫猜想,阿拉伯数字也不行,因为这根本不是语言的事。 第二,我看不出一个程序拆成两段用多线程运行哪里快了,多线程的 ...


0

你不能直接比较一个浮点数是否与另一个数相等 比如 double i = 0.1; i*=200; if(i == 20) //错误 通常你要定义一个精度,然后看其值是否在这个精度之内 #defien E 0.000001f if( abs(i-20) ...


0

一般情况下是两个,子类可以和一个父类公用一个虚函数表,其他父类必须有自己的虚函数表 这些都是没有规则的,编译器想怎么干就可以怎么干。只是虚函数表模式一般情况下效率比较高而已。 ...


0

static 声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自 ...


0

其实形参就是声明了一个指向包含两个元素的char类型指针。 snake是指向指针的指针,因此*snake是就是指向char的指针。 所以可以调用的。


0

#include "StdAfx.h" #include <stdlib.h> #define SIZE 4 // 多了; struct student { char name[10]; int num; int age; char addr[15]; }stud[SIZE] ...


0

写代码尽量不要去重复造轮子,不要自己定义实现equal_to,在STL中已有equal_to了,按你上面的代码可以修改成如下: #include <iostream> #include <functional> #include <algorithm> using n ...


0

问题出在RSHash使用了stl对象,P/Invoke规范对这个调用形式没有民明确规定,估计会存在问题,最好使用Windows API的那些接口 C++调用可以是因为你用的都是VC的编译器,如果使用gcc的话也不行,srl这种结构的实现不 ...


0

#include "stdafx.h" #include<iostream> #include <vector> #include <string> using namespace std; int main() { vector<string> vect; string str; while(cin>>str) { ...


0

string filename; cin>>filename; ifstream infile; string str; infile.open(filename.c_str());


0

四舍五入了而已,c++输出流默认舍去十进制有效数字最后一位 正常的编译器会保证产生的近似浮点数在舍去最后一位以后是和源码中写的常量一样的,当然前提是源码中的常量有效数字不能超出规定类型的范围。 0.2会被编 ...


0

union 中最后data3将idx空间重写了,只剩下000|00010 所以输出2 而struct中分开有独立空间,所以能区分不同data值 lz查看一下内存分布就可以看出来


0

如果你用的是winsock, 可以用下面的代码: #include <iostream.h> #include <winsock.h> int doit(int, char **) { char ac[80]; if (gethostname(ac, sizeof(ac)) == SOCK ...


0

原因是这样的 在c++中如果如果我们给一个类的对象赋值,或当形参传给其他函数时,假如类中含有指针类型的变量,默认c++会为我们拷贝指针而不会拷贝指针指向的内容。 上面的例子中, func(o); 这个函数将实参o ...


0

这个很简单嘛 1 bool is_number(char *str) 2 { 3 char *p = str; 4 // 0123 5 if(*p == '0' && *(p+1) != '\0') 6 return false; 7 while(*p != ...


0

aaa,bbb的构造函数参数都是临时对象,其中bbb的传递给aaa的string有效,但是临时。p指向的都是临时变量的地址。 另外,string不保证&s[0]返回是c风格字符串指针。 应该改成`aaa(string s) : p(const_cast<char*>(s ...


0