C++學習記錄一
概述
一、嵌入式開發中為什麼學習C++語言?
1、 嵌入式軟體工程師崗位需求
2、 面向過程程式設計VS面向物件程式設計
面向過程程式設計的特點:
①C語言的特點
*C語言是在時間的過程中逐步完善起來的
·沒有深思熟慮的設計過程(使用時存在很多“灰色地帶”)
·殘留量過多低階語言的特徵(直接利用指標進行記憶體操作)
*C語言的目標是高效的
·最終程式執行效率的高效
②面向過程的程式設計特點
面向過程程式設計:資料結構+演算法
*主要解決科學計算問題,使用者需求簡單而固定
*特點:分析解決問題所需要的步驟
利用函式實現各個步驟
依次呼叫函式解決問題
*問題:軟體可重用性差
軟體可維護性差
構建的軟體無法滿足使用者需求
面向物件程式設計的特點:
①面向物件的程式設計特點:
面向物件程式設計:由現實世界建立軟體模型
*將現實世界中的事物直接對映到程式中,可直接滿足客戶需求
*特點:直接分析使用者需求中涉及的各個實體
在程式碼中描述現實世界中的實體
在程式碼中關聯各個實體協同工作解決問題
*優勢:構建的軟體能夠適應使用者需求的不斷變化
直接利用面向過程方法的優勢而避開其劣勢
②C++語言的特點:
C語言+面向物件方法論:Objective-C、C++
3、 學習C++的優勢
*強化C語言程式設計能力、提高程式設計的程式碼質量
*幫助學習其他程式語言
1、 C++之父:本賈尼·斯特勞斯特魯普
2、 C++標準:98、03、11、14
3、 C++11值得學習的特性
智慧指標如shared_ptr、weak_ptr等
rvalue reference
function/bind
lambdaexpression and closure
4、 C++開發工具(IDE:整合開發環境)Eclipse CDT
5、 推薦書籍:《C++ prime 第五版》(加入C++11的新特性)
《Effective C++ 3rd》*必看、兩遍以上
《C++程式設計規範》
《敏捷軟體開發——原則、模式與實踐》
《程式碼大全》(第二版)
從C到C++的升級
1、 宣告定義
for(int I = 0; i< 5; i++)
{
i作用域:for迴圈,出了for迴圈不能用
}
C++支援C99,所有變數可以在需要時定義
C語言中的變數必須在作用域開始的位置定義
2、 register關鍵字的升級
*register關鍵字請求“編譯器”將區域性變數儲存於暫存器中
·C語言無法取得register變數地址
·C++中可以取得register變數的地址
相關推薦
C++學習記錄一
概述 一、嵌入式開發中為什麼學習C++語言? 1、 嵌入式軟體工程師崗位需求 2、 面向過程程式設計VS面向物件程式設計 面向過程程式設計的特點: ①C語言的特點 *C語言是在時間的過程中逐步完善起來的 ·沒有深思熟慮的設計過程(使
C++學習記錄
using 記錄 images block c++ blocks 錯誤提示 mage 可能 2017.09.02 今天使用codeblocks來寫一個Cat類,但是編譯的時候遇到“error: ‘string‘ does not name a type“的錯誤提示。 解
python 學習記錄一
python 每天學習筆記#!/usr/bin/pytholn# -*- coding: UTF-8 -*-import mathimport sysdef print_13(): #for i in range(10): man_age = int(raw_input(‘enter input age:\
學習記錄一
提示 相對 name 獲取 比較 div 就是 其中 dem 今天的話主要的精力都集中在郵件系統demo的實現,因為自己個人技術有限,所以做出來的相當簡陋,在其中碰到的問題其實也是比較多的,對於基於django的郵件相對來說比較容易,然後就是在提交數據,獲取post數據並加
WebService學習記錄(一)
接受 語言 www. info sdl htm 容易 span 數據 1.1 什麽是WebService Web service是一個平臺獨立的,低耦合的,自包含的、基於可編程的web的應用程序,可使用開放的XML(標準通用標記語言下的一個子集)標準來描述、發布、發現、協調
Quartz學習記錄(一)
記錄 lib jobdetail 遞增 引入 指定 sim 其中 基於 1.quartz介紹和下載 官網:http://www.quartz-scheduler.org/ Quartz是OpenSymphony開源組織在Job scheduling領域又一個開源項目,它可以
Linux學習記錄(一)
應用服務 切換目錄 lin 平板電腦 路由器 成熟 區別 領導 計算機硬件 1.Linux的簡介 1.1.Linux的概述 Linux是基於Unix的開源免費的操作系統,由於系統的穩定性和安全性幾乎成為程序代碼運行的最佳系統環境。Linux是由Linus Torvalds(
Nginx學習記錄(一)
under 3.3 學習 color dex 穩定 靜態 inf 推薦 1. 什麽是nginx Nginx是一款高性能的http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。由俄羅斯的程序設計師Igor Sysoev所開發,官方測試nginx能夠支支撐
MongoDB學習記錄一
users 泰安 系統設置 2.3 默認端口 erp nec acl 負責 本博客說明:最開始部分是一個運維部署案例模板,給開發安裝MongoDB都可以按照這個模板來進行基本部署,中間部分是自己研究其他博客記錄部署和授權相關內容,最後部分是網上視頻學習相關內容;www.mo
Nodejs學習記錄(一)--安裝設置篇
窗口切換 ati strong 直接 32位 回車 oot 目錄 release 安裝Node window window上安裝node可選擇以下兩種方式: 方式一:直接進入官網下載安裝 進入node.js官網點擊windows,選擇.msi後綴的,根據自己的電腦選擇對應的
<C++學習十一>標準庫string的使用(未完待續)
clu size_t ... namespace art ring star using start 使用: 1、C++標準庫負責管理和存儲字符串所占用的內存; 2、頭文件:#include<string> 3、空間域:using namespa
windbg學習記錄(一)
1、安裝 如果你安裝了WDK或vs的相關版本,你都可以從安裝目錄中找到它們(一般在Debuggers目錄中)。如果沒有,你可以從下面的連結去下載安裝: Install Debugging Tools for Windows 32-bit Version http://www.mi
jQuery學習記錄一
jQuery:就是JavaScript庫中的一種,jQuery,很多優點 * JavaScript庫也可以叫JavaScript函式庫 * JavaScript庫:把一些瀏覽器相容性的程式碼或者是常用的函式封裝在一個js
Java學習記錄一
計算機基礎知識 ①計算機(Computer)全稱:電子計算機,俗稱電腦。是一種能夠按照程式執行,自動、高速處理海量資料的現代化智慧電子裝置。由硬體和軟體所組成,沒有安裝任何軟體的計算機稱為裸機。常見的形式有臺式計算機、筆記本計算機、大型計算機等。 &nb
UNIX C 學習筆記一:UNIX/Linux發展歷史以及相關概念
一、UNIX 與 Linux 的發展歷史 Unix 作業系統是一個強大的多使用者,多工作業系統,支援多種處理器架構,按照作業系統的分類,屬於分時作業系統,最早由 Ken Thompson, Dennis Titchie 和 Douglas Mcllroy 於 1969年在 AT&
c++學習記錄之類
c++是面向物件的程式語言 面對物件就是: 把資料及對資料的操作方法放在一起,作為一個相互依存的整體——物件。對同類物件抽象出其共性,形成類。類中的大多 數資料,只能用本類的方法進行處理。類通過一個簡單的外部介面與外界發生關係,物件與物
View的學習記錄(一)
View的學習記錄 本篇目的 View的呼叫 View檢視樹 Activity中檢視的結構 View的測量 onMeasure() MeasurSpec類 重寫onMeasure()
git學習記錄一
一.git 安裝。 1.Linux安裝。可以試著輸入git,看系統中是否安裝git,如果沒有安裝會提示: $ git The program 'git' is currently not installed. You can install it by typin
python學習記錄一
一、目的 由於專案釋出點多,更新迭代耗時,想搞一個自動釋出的任務,以前也沒有用python寫過,這個任務當做練手了。 二、步驟 1、安裝python,pip。我安裝的是python3.6,只要在安裝過程中選擇安裝pip即可。 2、首先考慮的是弄一個定時鐘跑,check_
【C++學習記錄2】C到C++的升級
C++繼承了所有的C特性; C++在C的基礎上提供了更多的語法和特性; C++的設計目標是執行效率和開發效率(比C語言還高)的統一。 (C++中++的體現)C++是C語言的進化和升級。最重要的是兩個方面,其一是型別的加強(型別檢查更嚴格),其二是天生面向物件的支援(內建天生支援面向物件軟