原创 Windows與Linux的換行符

爲何在Windows中編寫的shell腳本放置到Linux中就無法正常運行呢?罪魁禍首盡然是“換行符機制”。 Windows換行符^M$ Linux換行符$ 大家可以通過cat -A [filename]的指令去看看自己文件。 She

原创 FTP配置受限用戶以及可能碰到的問題(轉)

開發中有個需求,需要在服務器開通一個FTP賬號給其他人用,讓他們上傳東西到我們的服務器。但是又不能讓他們訪問主機的其他目錄,所以用到vsftpd這個東西。 我們的主機系統是RHEL 9 ,自帶了 vsftpd,如果你的系統沒有vsft

原创 linux yum安裝、源的選擇及介紹

配置 yum 源的兩種方法 由於 redhat的yum在線更新是收費的,如果沒有註冊的話不能使用,如果要使用,需將redhat的yum卸載後,重啓安裝,再配置其他源,以下爲詳細過程:  1.刪除redhat原有的yum  rpm -

原创 多重繼承與虛擬繼承

爲什麼要引入虛擬繼承     虛擬繼承是多重繼承中特有的概念。虛擬基類是爲解決多重繼承而出現的。如:類D繼承自類B1、B2,而類B1、B2都繼承自類A,因此在類D中兩次出現類A中的變量和函數。這樣一個類D的對象在訪問繼承的類A中的成員

原创 C++虛函數表解析

C++中的虛函數的作用主要是實現了多態的機制。關於多態,簡而言之就是用父類型別的指針指向其子類的實例,然後通過父類的指針調用實際子類的成員函數。這種技術可以讓父類的指針有“多種形態”,這是一種泛型技術。所謂泛型技術,說白了就是試圖使用不變

原创 linux下MySQL安裝及設置

1. 關於本文    本文將以MySQL 5.0.51爲例,以CentOS 5爲平臺,講述MySQL數據庫的安裝和設置。2. 關於MySQL    MySQL是最流行的開源SQL數據庫管理系統,它由MySQL AB開發、發佈和支持。M

原创 字節對齊與結構體大小

說明: 結構體的sizeof值,並不是簡單的將其中各元素所佔字節相加,而是要考慮到存儲空間的字節對齊問題。這些問題在平時編程的時候也確實不怎麼用到,但在一些筆試面試題目中出是常常出現,對sizeof我們將在另一篇文章中總結,這篇文章我們

原创 在你步入職業軟件開發生涯那天起就該知道的五件事

轉自:http://blog.csdn.net/poem_qianmo/article/details/24658081 感覺這對剛入軟件開發的人以及正在從事軟件開發的人是一篇很好的文章 我的軟件開發生涯開始於大約15年以前

原创 [C++]深入理解sizeof-使用規則及陷阱分析

說明: sizeof在筆試面試的時候頻頻地出現,這也是對基礎的一個考查。關於sizeof的文章很多,但感覺大家都沒有好好總結下,本着“先行先贏”和“爲人民服務”的精神,查找引用參考了很多文章,在這裏總結一下,有錯誤或者遺漏的地方還得請

原创 C++中靜態數據成員以及靜態成員函數

類中的靜態成員真是個讓人愛恨交加的特性。我決定好好總結一下靜態類成員的知識點,以便自己在以後面試中,在此類問題上不在被動。 靜態類成員包括靜態數據成員和靜態函數成員兩部分。 一 靜態數據成員: 類體中的數據成員的聲明前加上static關鍵

原创 extern "C"的用法解析

1.引言   C++語言的創建初衷是“a better C”,但是這並不意味着C++中類似C語言的全局變量和函數所採用的編譯和連接方式與C語言完全相同。作爲一種欲與C兼容的語言, C++保留了一部分過程式語言的特點(被世人稱爲“不徹

原创 C++中引用和指針的區別

下面用通俗易懂的話來概述一下: 指針-對於一個類型T,T*就是指向T的指針類型,也即一個T*類型的變量能夠保存一個T對象的地址,而類型T是可以加一些限定詞的,如const、volatile等等。見下圖,所示指針的含義: 引用-引

原创 C++中const的作用大全

Const 作用 1.   const類型定義:指明變量或對象的值是不能被更新,引入目的是爲了取代預編譯指令 2.   可以保護被修飾的東西,防止意外的修改,增強程序的健壯性。 3.   編譯器通常不爲普通const常量分配存儲空間,而是

原创 程序員讀書雷達

軟件業的特點是變化。若要提高軟件開發的技能,就必須跟上技術發展的步伐。埋首醉心於項目開發與實戰,固然能夠錘鍊自己的開發技巧,卻難免受限於經驗與學識。世界上並不存在速成的終南捷徑,但閱讀好的技術書籍,尤其是閱讀大師們的經典著作,總能收到事

原创 自增自減操作符在C與C++中的左值區別

今天網上看到一個華爲的面試題目: 寫出判斷ABCD四個表達式的是否正確, 若正確, 寫出經過表達式中 a的值 int a = 4;(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++