Time of Update: 2018-07-25
•在成員函數中,可以將this指標當參數傳遞,也可以返回this指標,或返回通過this指標拿到的對象 /* 成員變數是別的類的對象 */#include <iostream>using namespace std;//日期類class Date { int year,month,day;public: //構造方法 Date(){ cout << "Date() " <<
Time of Update: 2018-07-25
計算t的m次冪的方法:(探索c++的函數pow()的實現方法,數學與程式設計的結合) 來源程式下載: http://pjy.studio.googlepages.com/powP.cpp 或到 我的收藏下載。 由於c++剛學完函數一章,而練習需要用pow()這個函數,於是就特發奇想,想自己能否寫一個能實現pow()功能的函數,經過一段努力,算有了一些結果。
Time of Update: 2018-07-25
雙向迴圈鏈表是基於雙向鏈表的基礎上實現的,和雙向鏈表的操作差不多,唯一的區別就是它是個迴圈的鏈表,通過每個節點的兩個指標把它們扣在一起組成一個環狀。所以呢,每個節點都有前驅節點和後繼節點(包括前端節點和尾節點)這是和雙向鏈表不同的地方。我們看下雙向迴圈鏈表的示意圖(我在網上找了張圖片,自己畫的實在難看,有時間真的要去學下怎麼畫圖了,然後可以寫出更好的部落格):
Time of Update: 2018-07-25
從看《Effective c++》以來,越發的覺得自己應該重新學習c++。但還是從零碎的知識中開始拾起,慢慢前進吧。 多態性 指相同對象收到不同訊息或不同對象收到相同訊息時產生不同的實現動作。C++支援兩種多態性:編譯時間多態性,運行時多態性。 a.編譯時間多態性:通過重載函數實現 b 運行時多態性:通過虛函數實現。 包含純虛函數的類稱為抽象類別。由於抽象類別包含了沒有定義的純虛函數,所以不能定義抽象類別的對象。
Time of Update: 2018-07-25
今天再Linux環境下遇到個詭異的現象,在連結動態庫時總是報類似下面的錯誤: (.text+0x13): undefined reference to `func' 以下提供幾種檢查方案: 1、如果提示未定義的函數是某個庫的函數。檢查庫是否已經安裝,並在編譯命令中採用-l和-L參數匯入庫。 2、如果提示未定義的函數是程式中的函數。檢查是否在標頭檔中聲明,是否在編譯中有對應的obj檔案,檢查函數的或者變數的名字是否正確,是否是因為前後拼字不一致造成的。
Time of Update: 2018-07-25
C++調用C的庫函數時,如果標頭檔定義得不恰當,可能會出現明明某函數在obj檔案中存在,但是卻發生連結失敗的情況,出現如下錯誤: undefined reference to 'xxx' 出現問題的原因是c庫函數編譯成obj檔案時對函數符號的處理和C++不同。因為C++函數支援重載,所以函數符號的處理要更複雜一些,c往往不作修飾。 例如有函數:
Time of Update: 2018-07-25
以前在32位下,調用Telnet沒有什麼問題,自從換了64位win7後,發現軟體中調用Telnet不能使用了,找了好久終於找到了原因:http://bbs.csdn.net/topics/390162914 貌似說win7下Telnet不會自動開啟,怎麼開啟。網上一搜一大片方法; 現在就是要判斷作業系統的位元了,這個網上貌似有很多判斷方法,現就摘抄其中的一種 bool is64System() { typedef BOOL (
Time of Update: 2018-07-25
轉載地址:http://hi.baidu.com/thewillreigns/blog/item/67e665c4296e69c038db492d.html char 和 unsigned char是無符號的 兩者都作為字元用的話是沒有區別的,但當整數用時有區別: char 整數範圍為-128到127( 0x80__0x7F), 而unsigned char 整數範圍為0到255( 0__0xFF ) 多數情況下,char ,signed char 、unsigned
Time of Update: 2018-07-25
補充: 不好意思, 非VC編譯器的Bug, 是我自己的錯誤。ToString()的傳回值是一個臨時string, 執行完 const char* szText = const_cast<Test&>(tst).ToString().c_str();後, 臨時string就會被銷毀, szText所指向的string內容已經被銷毀, 所以亂碼。至於,g++編譯, 輸出結果正確,
Time of Update: 2018-07-25
The C POSIX library is a specification of a C standard library for POSIX systems. It was developed at the same time as the ANSI C standard. Some effort was made to make POSIX compatible with standard C; POSIX includes additional functions to those
Time of Update: 2018-07-25
/*對磁碟檔案作如下操作:(1) 在磁碟上建立一個文字檔,該檔案中存放若干個實數;(2) 在磁碟上已有文字檔中,讀出若干個實數,並求出其中的最大數、最小數和平均值;(3) 向檔案追加記錄、瀏覽文字檔、將一個檔案複製到另一個檔案中(定義類來完成)。*/#include<fstream>#include<iostream> //在測試時發現不加之後cerr無法輸出using namespace
Time of Update: 2018-07-25
運用類的知識重新審視分數加法 /*1.分數相加,兩個分數分別是1/5和7/20,它們相加後得11/20。方法是先求出兩個分數分母的最小公倍數,通分後,再求兩個分子的和,最後約簡結果分數的分子和分母(如果兩個分數相加的結果是4/8,則必須將其約簡成最簡分數的形式1/2),即用分子分母的最大公約數分別除分子和分母。求m、n最大公約數的一種方法為:將m、n較小的一個數賦給變數k,然後分別用{ k,k-1,k-2,…,1}中的數(遞減)去除m和n,第一個能把m和n同時除盡的數就是m和n的最大公約數。
Time of Update: 2018-07-25
簡介 在c語言的prinf()中,可以格式的控制輸出。但是c++中的cout應該怎麼格式的控制輸出呢。 setw(n),控制預設寬度。 setw()只對其後面緊跟的輸出產生作用。若輸入的內容超過setw()設定的長度,則按實際長度輸出。預設靠右對齊。 setfill(char c),就是在預設寬度中如果已存在沒用完的寬度大小,則用設定的字元c填充。 left和right,更改對齊。預設的是靠右對齊。 fixed,使用小數計數法
Time of Update: 2018-07-25
今天在處理MAC地址時,遇到之前沒有注意的一個問題,特此記錄。 在需要字串格式化輸出的時候自然而然的想到了Format函數,MAC地址需要以兩位寬度十六進位形式輸出,所以我就直接寫了%x ,但是在實際輸出時遇到一個錯誤輸出格式變成了:·"fffffff0",應該是f0啊. 首先確定自己的程式沒有寫錯,然後簡單分析下,只要是0xf*這種就會變成上述的情況,,很明顯應該是進位或者符號位問題。
Time of Update: 2018-07-25
統計輸入中每個值出現了多少次: int currVal = 0, val = 0;if (std::cin >> currVal) {int cnt = 1; while (std::cin >> val) {if (val == currVal)++cnt;else {std::cout << currVal << " occurs " << cnt <<
Time of Update: 2018-07-25
1)把所有DBG和ERR改成printf; 2)COMMOM_Malloc改成malloc; 3)COMMON_Free改成free; 4)所有的CHECK寫一個空的宏即可(原來作為參數合法性檢查); 5)編譯Ok; #ifndef __LIST_H__#define __LIST_H__#ifdef __cplusplus#if __cplusplusextern "C"{#endif#endiftypedef void*
Time of Update: 2018-07-25
C++不轉義顯示原始字串、 一般字串中用“ ”包著,如果要輸出一些特定的字元,需要逸出字元。原始字串就是不用轉義的情況下也能輸出特定的字元 格式[R"(要顯示的字串)"] cout << R"(Jim "king" like "\n" !)";Jim "king" like "\n" ! 原來的用逸出字元 cout <<
Time of Update: 2018-07-25
容器 第1條:謹慎選擇容器類型。 標準STL序列容器:vector、string、deque和list。 標準STL關聯容器:set、multiset、map和multimap。 非標準序列容器slist和rope。slist是一個單向鏈表,rope本質上是一“重型”string。 非標準的關聯容器hash_set、hase_multiset、hash_map和hash_multimap。
Time of Update: 2018-07-25
剛接觸容器時,可以簡單的把他看做一個可以各種類型(struct也是可以的)的數組,思路和操作也和數組差不多,就是命令使用的有些區別 C++容器類的簡單介紹 一、原型與建構函式 Vector的原型可定義為 vector > 其建構函式為 vector() //空的 vector(al) //指定一種allocator vector(n) //用預設T()初始化n個元素 vector(n, val)
Time of Update: 2018-07-25
Gamasutra上有篇文章講得挺細的: Sponsored Feature: Behind the Mirror - Adding Reflection to C++ RTTI 在Class聲明後加入RTTI宏的做法幾乎快成各種引擎的標配了, 誰叫C++的rtti太弱來著. 之前只是認為自己實現RTTI的原因是dynamic_cast的效率不高和對象工廠的需要, 原來關掉這個編譯選項還可以減少佔用的記憶體 Field(