1. 程式人生 > >C++學習記錄一

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】CC++的升級

C++繼承了所有的C特性; C++在C的基礎上提供了更多的語法和特性; C++的設計目標是執行效率和開發效率(比C語言還高)的統一。 (C++中++的體現)C++是C語言的進化和升級。最重要的是兩個方面,其一是型別的加強(型別檢查更嚴格),其二是天生面向物件的支援(內建天生支援面向物件軟