欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++基礎(chǔ)入門教程(一):基礎(chǔ)知識大雜燴

 更新時間:2014年11月03日 09:29:32   作者:笨木頭  
這篇文章主要介紹了C++基礎(chǔ)入門教程(一):基礎(chǔ)知識大雜燴,本文講解了注釋、頭文件、命名空間等內(nèi)容,需要的朋友可以參考下

我很郁悶,這本書果然講得很詳細(xì),我在看第二章,看完要深呼吸,實在太詳(lao)細(xì)(dao)了。
不過這很好,后面難一些的內(nèi)容應(yīng)該會不錯~
 
那么,這章只是作為預(yù)覽的章節(jié),我抽出一些稍微比較有營養(yǎng)的內(nèi)容記錄一下吧~
 
注意:本系列教程不適合無任何編程語言基礎(chǔ)的朋友,只是作為C++基礎(chǔ)的一種補充。
教程內(nèi)容基于《C++ Primer Plus》一書,適合初學(xué)者,熟手請直接忽略。

1. 如果你不注釋,那么,我會把你注釋掉~!

C++的注釋有2種,
第一種,單行注釋,那就是://
如下代碼:

復(fù)制代碼 代碼如下:

    // 呵呵
    Test* t = new Test();;

//后面跟著的就是注釋內(nèi)容,屬于單行注釋
所謂的注釋,就是與代碼無關(guān)的內(nèi)容,與編譯器無關(guān)的內(nèi)容,只是給我們自己或者其他人看的。
就像是說明書。
 
另外還有一種注釋,那就是:/* */
如下代碼:
復(fù)制代碼 代碼如下:

/*
呵呵
你剛剛說什么來著?
*/
Test* t = new Test();;

/**/中間可以放一段文字,這是多行注釋。
 
這廢話就不多說了。

另外要說一下廢話(小若:剛剛誰說廢話不多說來著?),那就是注釋真的很重要~!
不要聽那么大牛說什么變量名字取得好、函數(shù)名字取得好就不需要注釋。
每個人對“好”是有不同的評價的,所以注釋很重要,誰喜歡看那些一整頁都沒有注釋的代碼呢?
不管是英文注釋還是中文注釋,都能讓其它人或者自己以最快的速度了解某段代碼的意思。
 
沒錯,如果遇到那些自以為自己寫得一手完美代碼的人,一個注釋都不寫的,那么,你就把他整個人給注釋掉吧~!

2.頭文件

語言本身除了語法之外,最重要的應(yīng)該就是各種庫了。
各種庫,也就是它的各種功能,我們只要調(diào)用一些函數(shù)就能完成特定的功能。
比如打印文字、讀寫文件什么的。
 
C++提供了很多這樣的庫,它們被分別存放在不同的文件中。
如果想使用這些庫里面的函數(shù),就要包含這些庫的頭文件。
 
所以,我們經(jīng)常會看到下面的代碼:

復(fù)制代碼 代碼如下:

#include "hello.h"
#include <iostream>

#include就是用來包含頭文件的,包含頭文件之后就能使用某個庫的函數(shù)了。
那么,為什么有些頭文件是.h結(jié)尾,有些又沒有呢?
其實現(xiàn)在C++默認(rèn)規(guī)定是不需要.h結(jié)尾的,.h結(jié)尾只是以前留下來的習(xí)慣~
但,其實現(xiàn)在大家在新建類文件的時候還是習(xí)慣保留.h,而C++自帶的庫可能更多的是沒有后綴的。
 
其實頭文件就是一個文件,什么結(jié)尾關(guān)系不大(大部分情況下),所以有時候我們也能看到.hpp結(jié)尾的文件。
這個就不多說了~
 
總而言之,如果你編譯代碼的時候報錯,說什么不能使用未聲明的類型之類的,基本上就是沒有包含相應(yīng)的頭文件了。

3.命名空間

作為初學(xué)者,應(yīng)該常常見到下面的代碼(小若:難道不是初學(xué)者就不常見嗎?):

復(fù)制代碼 代碼如下:

#include "cocos2d.h"
using namespace cocos2d;

比如我們要使用Cocos2d-x的Sprite類,這個類是在cocos2d.h庫中的,所以我們首先要包含cocos2d.h頭文件。
然后就使用Sprite這個類,比如:Sprite* sp = Sprite::create(“boy.png”);
但相信大家都試過,這么直接用會報錯的,大概是說找不到Sprite。
 
這是因為Sprite是在某個命名空間里的,我們要這樣使用它:cocos2d::Sprite* sp = cocos2d::Sprite::create(“boy.png”);
這樣就沒問題了,那么,命名空間是個什么東西?

4.不同庫的相同類名沖突

我們先來跑一下題,假設(shè)我想貢獻(xiàn)一下,給大家寫一個更好用的庫(頭文件叫做mutou.h),然后,其中也有一個類叫做Sprite。

于是,大家會這么使用我的庫:Sprite* mSp = Sprite::new(“girl.png”);
 
那么,問題來了,學(xué)挖掘機哪家…(小若:停~!回來!別跑題?。?br /> 那么,如果我們想同時使用cocos2d和mutou的Sprite類,會發(fā)生什么事情?如下代碼:

復(fù)制代碼 代碼如下:

#include "cocos2d.h"
#include "mutou.h"
Sprite* sp = Sprite::create("boy.png");
Sprite* mSp = Sprite::new("girl.png");

這樣一定會報錯,大概是說Sprite不明確
所以,這個時候,就需要一個叫做“命名空間”的東西來區(qū)分這些不同庫的相同名字的類了。
我們把cocos2d的庫放到名為cocos2d的命名空間里,把mutou的庫放到名為mutou的命名空間里:

復(fù)制代碼 代碼如下:

#include "cocos2d.h"
#include "mutou.h"
cocos2d::Sprite* sp = cocos2d::Sprite::create("boy.png");
mutou::Sprite* mSp = mutou::Sprite::new("girl.png");

這么使用就不會出問題了,至于如何把某個庫放到某個命名空間中,其實很簡單,但是這里先不介紹了。

5.偷懶

回到最初,using namespace cocos2d;又是什么東西呢?
如剛才所見,在Sprite前面總是要加上cocos2d::這樣的前綴,實在是太煩人了。
所以,我們可以偷懶,使用了using namespace cocos2d;之后,就不需要寫這樣的前綴了。
 
但是,這只是在沒有沖突的情況下,如果遇到剛剛說的不同庫的相同類名沖突,就必須使用前綴。
 
書上有提到,濫用using namespace不是什么好事,但我沒有經(jīng)歷過什么坑,可能在大型項目中才會出現(xiàn)問題吧。
一般的手游是沒什么影響了。
 
如果擔(dān)心的話,可以這樣使用:using namespace cocos2d::Sprite;
這樣依舊可以不用cocos2d::前綴就能使用Sprite類,但如果要用到cocos2d庫的其他類,就又要再一次使用using namespace cocos2d::name;
總之,這種方式就是:用到的類才使用using聲明。可以節(jié)省一些開支。

6.結(jié)束

好吧,前面的內(nèi)容實在是太基礎(chǔ),基礎(chǔ)到?jīng)]東西可以介紹了。
下一章應(yīng)該會好一些…

相關(guān)文章

  • C語言實現(xiàn)選擇排序、冒泡排序和快速排序的代碼示例

    C語言實現(xiàn)選擇排序、冒泡排序和快速排序的代碼示例

    這篇文章主要介紹了C++中實現(xiàn)選擇排序、冒泡排序和快速排序的代碼示例,例子帶有執(zhí)行時間統(tǒng)計還可以簡單看一下效率對比,需要的朋友可以參考下
    2016-04-04
  • C語言字符串另類用法的實現(xiàn)

    C語言字符串另類用法的實現(xiàn)

    今天小編就為大家分享一篇關(guān)于C語言字符串另類用法的實現(xiàn),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • OpenCV通過透視變換實現(xiàn)矯正圖像詳解

    OpenCV通過透視變換實現(xiàn)矯正圖像詳解

    這篇文章主要為大家詳細(xì)介紹了OpenCV如何通過透視變換實現(xiàn)將一張折射的圖片給矯正過來,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-02-02
  • 詳解C++ sort函數(shù)的cmp參數(shù)

    詳解C++ sort函數(shù)的cmp參數(shù)

    這篇文章主要介紹了C++ sort函數(shù)的cmp參數(shù),以升降排序個結(jié)構(gòu)體的排序展開的話題,感興趣的小伙伴可以參考下面文章內(nèi)容
    2021-09-09
  • 詳解C++中特殊類設(shè)計

    詳解C++中特殊類設(shè)計

    這篇文章主要為大家詳細(xì)介紹了C++中關(guān)于特殊類設(shè)計的相關(guān)知識,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C++有一定的幫助,感興趣的可以了解一下
    2023-07-07
  • C++ 對多線程/并發(fā)的支持(上)

    C++ 對多線程/并發(fā)的支持(上)

    這篇文章主要介紹的是C++ 對多線程/并發(fā)的支持,并發(fā),即同時執(zhí)行多個任務(wù),常用來提高吞吐量或者改善響應(yīng)性,下面我們就來看文章詳細(xì)介紹C++ 對多線程并發(fā)的支持相關(guān)資料的內(nèi)容吧
    2021-10-10
  • 如何基于 Blueprint 在游戲中創(chuàng)建實時音視頻功能

    如何基于 Blueprint 在游戲中創(chuàng)建實時音視頻功能

    我們在本文先來講講如何在 Unreal 中用 Blueprint 快速實現(xiàn)。稍后會分享基于 C++的實現(xiàn)步驟。感興趣的朋友跟隨小編一起看看吧
    2020-05-05
  • c++中的static修飾符示例詳解

    c++中的static修飾符示例詳解

    在c++中,靜態(tài)成員是屬于整個類而不是某個對象,靜態(tài)成員變量只存儲一份供所有對象共用,下面這篇文章主要給大家介紹了關(guān)于c++中static修飾符的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • C++畫正弦線實例代碼

    C++畫正弦線實例代碼

    這篇文章主要介紹了C++畫正弦線實例代碼,是C++圖形操作程序設(shè)計中比較常見的一個技巧,需要的朋友可以參考下
    2014-10-10
  • C語言經(jīng)典例程100例(經(jīng)典c程序100例)

    C語言經(jīng)典例程100例(經(jīng)典c程序100例)

    這篇文章主要介紹了C語言經(jīng)典例程100例,經(jīng)典c程序100例,學(xué)習(xí)c語言的朋友可以參考一下
    2018-03-03

最新評論