锘??xml version="1.0" encoding="utf-8" standalone="yes"?>#include < cstdlib >
#include < iostream >
#include < typeinfo >
using namespace std;
class B
{
public :
virtual void fun()
{}
};
class D: public B
{
public :
void fun()
{}
};
int main()
{
B * p;
D ob;
p =& ob;
cout << " typeid(*p).name()= " << typeid( * p).name() << endl;
if (typeid( * p) == typeid(D))
cout << " typeid(*p)==typeid(D) " << endl;
cout << " typeid(p).name()= " << typeid(p).name() << endl;
if (typeid(p) == typeid(B * ))
cout << " typeid(p)==typeid(B*) " << endl;
system( " pause " );
return 0 ;
}
榪欐code鍦╒C++6.0涓紪璇戞椂錛屾彁紺哄涓?br>warning C4541: 'typeid' used on polymorphic type 'class B' with /GR-; unpredictable behavior may result
緙栬瘧鍚庤繍琛屾椂閿欒銆備笉鐭ユ槸涓嶆槸姝ょ増鏈殑VC++涓嶇鍚圕++鏍囧噯錛?br>
鍦―evcpp錛坓++錛変腑緙栬瘧榪愯寰楀埌鐨勭粨鏋滄槸
typeid(*p).name()=1D
typeid(*p)==typeid(D)
typeid(p).name()=P1B
typeid(p)==typeid(B*)
璇存槑鐢╰ypeid浣滅敤浜?p寰楀埌鐨勭殑紜槸D綾誨瀷錛岃岀敤typeid浣滅敤浜巔寰楀埌鐨勪緷鐒舵槸B綾葷殑鎸囬拡綾誨瀷
濡傛灉typeid琚綔鐢ㄤ簬闈炲鎬佺被鎸囬拡錛岄偅涔堟垜浠緱鍒扮殑鏄寚閽堣澹版槑鐨勭被鍨嬶紝涔熷氨鏄錛屾鏃秚ypeid騫朵笉浼氳繑鍥炴寚閽堟墍鎸囧悜瀵硅薄鐨勫疄闄呯被鍨嬨?br>濡傛灉灝哻lass B涓殑virtual鍘繪帀錛屽湪緙栬瘧榪愯寰楀埌鐨勭粨鏋滄槸
typeid(*p).name()=1B
typeid(p).name()=P1B
typeid(p)==typeid(B*)
鐢辨鍙錛屽湪浠諱綍鏃跺埢閮藉彲浠ョ敤鍩虹被鎸囬拡鎸囧悜媧劇敓綾誨璞★紝鑰岀敤typeid(*p)紜畾p鎸囧悜鐨勫璞℃椂錛屽彧褰撳熀綾諱負澶氭佺被鏃舵墠鑳界湡姝g‘瀹歱鍦ㄨ繍琛屾椂鎸囧悜鐨勫疄闄呯被鍨嬨?br>
VC榛樿涓嶅惎鍔≧TTI錛屽嵆“榪愯鏃舵湡綾誨瀷璇嗗埆”錛屽鏋滃湪浣犵殑紼嬪簭鐢ㄥ埌浜哛TTI錛屾瘮濡倀ypeid錛屼綘蹇呴』鏄庣‘鍛婅瘔緙栬瘧鍣ㄥ惎鍔≧TTI錛岃繖鏍稸C鎵嶈兘姝g‘緙栬瘧
閫夋嫨鑿滃崟Project->settings->c/c++->category->c++ language,灝咵nable Run-Time Type Infomation(RTTI)閫変腑
]]>
2 #include <iostream>
3 #include <fstream>
4
5 int main(int argc, char* argv[])
6 {
7 using namespace std;
8
9 cout << "Hello, Let's begin a test of cout to file." << endl;
10 // 淇濆瓨cout嫻佺紦鍐插尯鎸囬拡
11 streambuf* coutBuf = cout.rdbuf();
12
13 ofstream of("out.txt");
14 // 鑾峰彇鏂囦歡out.txt嫻佺紦鍐插尯鎸囬拡
15 streambuf* fileBuf = of.rdbuf();
16
17 // 璁劇疆cout嫻佺紦鍐插尯鎸囬拡涓簅ut.txt鐨勬祦緙撳啿鍖烘寚閽?/span>
18 cout.rdbuf(fileBuf);
19 cout << "Name " << "Chen" << endl;
20 cout << "Sex " << "Female" << endl;
21 cout << "E-mail"<< "Chen@qq.com" << endl;
22
23 of.flush();
24 of.close();
25
26 // 鎭㈠cout鍘熸潵鐨勬祦緙撳啿鍖烘寚閽?/span>
27 cout.rdbuf(coutBuf);
28 cout << "Write Personal Information over..." << endl;
29
30 system("PAUSE");
31 return 0;
32 }
]]>
O(n)綆楁硶銆傚洜涓轟袱涓暟緇勯兘鏄帓濂藉簭鐨勩傛墍浠ュ彧瑕佷竴嬈¢亶鍘嗗氨琛屼簡銆傞鍏堣涓や釜涓嬫爣錛屽垎鍒垵濮嬪寲涓轟袱涓暟緇勭殑璧峰鍦板潃錛屼緷嬈″悜鍓嶆帹榪?銆傛帹榪涚殑瑙勫垯鏄瘮杈冧袱涓?鏁扮粍涓殑鏁板瓧錛屽皬鐨勯偅涓暟緇勭殑涓嬫爣鍚戝墠鎺ㄨ繘涓姝ワ紝鐩村埌浠諱綍涓涓暟緇勭殑涓嬫爣鍒拌揪鏁扮粍鏈熬鏃訛紝濡傛灉榪欐椂榪樻病紕板埌鐩稿悓鐨勬暟瀛楋紝璇存槑鏁扮粍涓病鏈夌浉鍚岀殑鏁板瓧銆?br>
bool findcommon(int a[], int size1, int b[], int size2)
{
int i=0,j=0;
while(i<size1 && j<size2)
{
if(a[i]==b[j])
return true;
if(a[i]>b[j])
j++;
if(a[i]<b[j])
i++;
}
return false;
}
]]>
http://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.html
]]>
class A
{};
class B
{};
class C //鎯呭喌1
//class C:public A //鎯呭喌2
{
virtual void fun()=0;
};
class D:public B,public C
{
};
int main()
{
cout<<sizeof(D)<<endl;
return 0;
}
鏈榪戝湪欏圭洰涓亣鍒頒簡涓涓鎬殑闂銆?/p>
鍦ㄧ▼搴忎腑錛孉妯″潡鐢ㄥ埌浜嗕竴涓ā鐗堝嚱鏁幫紝榪欎釜妯$増鍑芥暟澶栭儴涓嶉渶瑕佽皟鐢紝鍥犳鍦?.cpp涓畾涔夊茍瀹炵幇涔嬨?/p>
緙栬瘧鐨勬椂鍊欏鎬殑鐜拌薄鍙戠敓浜嗭紙VC6 sp5錛夛紝鍦╠ebug涓嬶紝涓鍒囨甯革紱鍦╮elease涓嬶紝鍦ㄥ啓榪欎釜妯″潡鐨勪漢閭i噷鍙互姝e父緙栬瘧涓旇繍琛屾甯搞傚彲鎷垮埌鎴戣繖鏉ョ殑鏃跺欙紝灝辯紪璇戜笉榪囦簡銆傛垜浠嚑涓笀鍏勫紵閮芥病杈欎簡錛屽彧鑳界瓑鑰佹澘鏉ヨВ鍐充簡銆?/p>
“template蹇呴』瀹氫箟浜庡ご鏂囦歡涓紒”鑰佹澘濡傛槸鍛婅瘔鎴戜滑銆?/p>
璇曚箣錛屾灉涓嶅叾鐒訛紒
浠婃棩鍙堢湅銆奀++鏍囧噯紼嬪簭搴撱嬶紝鍦╬10欏墊敞閲?錛屾湁璁拌澆錛?#8220;鐩墠template蹇呴』瀹氫箟浜庡ご鏂囦歡涓?...."銆?/p>
鍦ㄧ▼搴忎腑鑾峰緱鏅氭枃浠訛紝鐩綍錛岀閬擄紝socket錛屽瓧絎︼紝鍧楋紙錛夌殑灞炴с?/p>
鍑芥暟鍘熷瀷
#include <sys/stat.h>
int stat(const char *restrict pathname, struct stat *restrict buf);
鎻愪緵鏂囦歡鍚嶅瓧錛岃幏鍙栨枃浠跺搴斿睘鎬с傛妸鐩稿簲鐨勫睘鎬у瓨鏀懼埌 buf涓?/p>
2 鏂囦歡瀵瑰簲鐨勫睘鎬?br>struct stat {
mode_t st_mode; //鏂囦歡瀵瑰簲鐨勬ā寮忥紝鏂囦歡錛岀洰褰曠瓑
ino_t st_ino; //inode鑺傜偣鍙?br> dev_t st_dev; //璁懼鍙風爜
dev_t st_rdev; //鐗規畩璁懼鍙風爜
nlink_t st_nlink; //鏂囦歡鐨勮繛鎺ユ暟
uid_t st_uid; //鏂囦歡鎵鏈夎?br> gid_t st_gid; //鏂囦歡鎵鏈夎呭搴旂殑緇?br> off_t st_size; //鏅氭枃浠訛紝瀵瑰簲鐨勬枃浠跺瓧鑺傛暟
time_t st_atime; //鏂囦歡鏈鍚庤璁塊棶鐨勬椂闂?br> time_t st_mtime; //鏂囦歡鍐呭鏈鍚庤淇敼鐨勬椂闂?br> time_t st_ctime; //鏂囦歡鐘舵佹敼鍙樻椂闂?br> blksize_t st_blksize; //鏂囦歡鍐呭瀵瑰簲鐨勫潡澶у皬
blkcnt_t st_blocks; //鏂囦歡鍐呭瀵瑰簲鐨勫潡鏁伴噺
};
鍙互閫氳繃涓婇潰鎻愪緵鐨勫嚱鏁幫紝榪斿洖涓涓粨鏋勪綋錛屼繚瀛樼潃鏂囦歡鐨勪俊鎭?/p>
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?a >http://blog.csdn.net/fxpbupt/archive/2008/11/17/3313427.aspx