柚子快報激活碼778899分享:學(xué)習(xí) 【C++】初步認識C++
柚子快報激活碼778899分享:學(xué)習(xí) 【C++】初步認識C++
1. 初識C++1.1 C++概念相關(guān)1.2 C++發(fā)展史及其重要性1.2.1 發(fā)展史1.2.2 重要性
2. C++關(guān)鍵字3. 命名空間4. 輸入和輸出
個人主頁:C_GUIQU 歸屬專欄:【C++學(xué)習(xí)】
1. 初識C++
1.1 C++概念相關(guān)
C語言是結(jié)構(gòu)化和模塊化的語言,適合處理較小規(guī)模的程序。
【來源】1982年,Bjarne Stroustrup博士在C語言的基礎(chǔ)上引入并擴充了面向?qū)ο蟮母拍?,發(fā)明了一種新的程序語言。為了表達該語言與C語言的淵源關(guān)系,命名為C++。
【概念】C++是基于C語言而產(chǎn)生的,它既可以進行C語言的過程化程序設(shè)計,又可以進行以抽象數(shù)據(jù)類型為特點的基于對象的程序設(shè)計,還可以進行面向?qū)ο蟮某绦蛟O(shè)計。
【性質(zhì)】
面向?qū)ο笕筇匦裕悍庋b,繼承,多態(tài)。
【C語言和C++的關(guān)系】
1.2 C++發(fā)展史及其重要性
1.2.1 發(fā)展史
【C++的歷史版本】
1.2.2 重要性
重要性不言而喻
【4個層次】
第一個層次,C++基礎(chǔ) (平平常常)第二個層次,正確高效的使用C++ (駕輕就熟)第三個層次,深入解讀C++ (出神入化)第四個層次,研究C++ (返璞歸真)
【建議】中后期畫思維導(dǎo)圖總結(jié)。
【摘錄】 最后,我說一說我的一些感受:
這些年來的對于外企和國內(nèi)感受—— 國外牛B的IT公司的工程能力并不見得比國內(nèi)的要強多少,但是國外那些NB的IT公司的架構(gòu)和設(shè)計能力遠遠超過國內(nèi)的公司,最可怕的是,那些有超強架構(gòu)和設(shè)計能力的“老程序員們”還戰(zhàn)斗在一線,這些戰(zhàn)斗在一線的老鳥的能力絕對超過100個普能的新手。對年輕程序員的感受——國內(nèi)新一代的程序員們太浮燥了。老實說,對于大多數(shù)人來說,如果你沒有編程到30歲,你還不能成為一個“合格”的程序員。所以,并不是編程編到30歲就玩完了,而是編程編到30歲才剛剛?cè)腴T。這些不合格的程序,整天BS這個不好,那個不好的,而且喜歡速成,好大喜功。我是一個奔四的人了,編程就像登山一樣,越往上爬人越少,所以,在我這個年紀還有想法,對編程還有熱情的人不多了,基本上都是轉(zhuǎn)Manager了。其實,什么職位,Title都是虛的,公司沒了什么都沒了,只有技術(shù)才是硬通貨。而且,越是這個年紀還在玩編程玩技術(shù)的人,其實其經(jīng)驗和能力都是比較強的,都是中堅力量,如果還有其它這個年紀和我一樣的人,求交往。
2. C++關(guān)鍵字
C語言32個關(guān)鍵字,C++總計63個關(guān)鍵字。 后期學(xué)習(xí)慢慢了解。
asm
do
if
return
try
continue
auto
double
inline
short
typedef
for
bool
dynamic_cast
int
signed
typeid
public
break
else
long
sizeof
typename
throw
case
enum
mutable
static
union
wchar_t
catch
explicit
namespace
static_cast
unsigned
default
char
export
new
struct
using
friend
class
extern
operator
switch
virtual
register
const
false
private
template
void
true
const_cast
float
protected
this
volatile
while
delete
goto
reinterpret_cast
3. 命名空間
【引言】
//C語言命名沖突報錯
#include
#include
int rand = 10;
int main()
{
int a = 1;
printf("%d\n",rand);
return 0;
}
C++中引入命名空間(namespace)用以解決這類問題。
【概念】
命名空間(namespace)是 C++ 提供的一種解決命名沖突問題的方法,可以將不同作用域的標識符(如變量、函數(shù)、類等)組織在一起。
【性質(zhì)】
是用來組織代碼并避免命名沖突的一種機制。避免命名沖突:不同的命名空間中可以有相同名稱的變量和函數(shù),彼此不會產(chǎn)生沖突。模塊化組織:更好地組織和管理代碼,提高可維護性。作用域控制:控制變量和函數(shù)的可見范圍,避免全局污染。
定義命名空間
namespace myNamespace
{
int a;//定義變量
void fun();//定義函數(shù)
}
使用命名空間中的成員
作用域運算符 :: :在C++中用于訪問命名空間的成員和限定類的成員函數(shù)的定義位置。 可以理解為訪問操作符,用于訪問變量和函數(shù)。
namespace myNamespace
{
int a;
void fun();
myNamespace :: a = 1;//使用變量
myNamespace :: fun();//使用函數(shù)
}
嵌套命名空間
namespace 1
{
namespace 2//嵌套
{
int a;
void fun();
}
}
myNamespace::a = 1;
myNamespace::fun();
使用 using聲明
#include
namespace NamespaceA
{
int a = 5;
}
int main()
{
using NamespaceA::a; // 使用using聲明
std::cout << "a = " << a << std::endl; // 直接使用a,無需NamespaceA::前綴
return 0;
}
使用 using namespace指令
#include
namespace NamespaceA
{
int a = 5;
void func()
{
std::cout << "Hello from NamespaceA!" << std::endl;
}
}
int main()
{
using namespace NamespaceA; // 使用using namespace指令
std::cout << "a = " << a << std::endl; // 直接訪問命名空間NamespaceA中的變量a
func(); // 直接調(diào)用命名空間NamespaceA中的函數(shù)func
return 0;
}
//【輸出】
/*
a = 5
Hello from NamespaceA!
*/
【總示例】
#include
// 定義命名空間NamespaceA
namespace NamespaceA
{
int a = 5;
// 定義嵌套命名空間NamespaceB
namespace NamespaceB
{
int b = 10;
}
}
int main()
{
// 使用 using聲明
using NamespaceA::a;
std::cout << "Using declaration: a = " << a << std::endl;
// 使用 using namespace指令
using namespace NamespaceA;
std::cout << "Using namespace directive: a = " << a << std::endl; // 可直接使用a
// 使用嵌套命名空間NamespaceB中的成員
std::cout << "NamespaceA::NamespaceB::b = " << NamespaceA::NamespaceB::b << std::endl;
return 0;
}
【輸出】
Using declaration: a = 5
Using namespace directive: a = 5
NamespaceA::NamespaceB::b = 10
using和using namespace兩者區(qū)別:
using聲明:通過using 命名空間::成員的方式,可以將命名空間中的特定成員引入當(dāng)前作用域,只能引入命名空間中的指定成員,不會引入整個命名空間。using namespace指令:通過using namespace 命名空間的方式,可以將整個命名空間的所有成員引入當(dāng)前作用域,可以直接訪問整個命名空間中的成員,但可能會引入命名空間中的不必要成員,增加命名沖突的可能。
4. 輸入和輸出
#include
int main()
{
std :: cout << "Hello C++!" << std :: endl;
return 0;
}
【輸出】
Hello C++!
【優(yōu)化/簡化】
#include
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
【輸出】
Hello world!
【說明】
使用cout標準輸出對象(控制臺)和cin標準輸入對象(鍵盤)時,必須包含< iostream>頭文件以及按命名空間使用方法使用std。cout和cin是全局的流對象,endl是特殊的C++符號,表示換行輸出,他們都包含在包含頭文件中。<<是流插入運算符,>>是流提取運算符。使用C++輸入輸出更方便,不需要像printf/scanf輸入輸出時那樣,需要手動控制格式。C++的輸入輸出可以自動識別變量類型。實際上cout和cin分別是ostream和istream類型的對象,>>和<<也涉及運算符重載等知識。 注意:早期標準庫將所有功能在全局域中實現(xiàn),聲明在.h后綴的頭文件中,使用時只需包含對應(yīng)頭文件即可,后來將其實現(xiàn)在std命名空間下,為了和C頭文件區(qū)分,也為了正確使用命名空間,規(guī)定C++頭文件不帶.h;舊編譯器(vc 6.0)中還支持
柚子快報激活碼778899分享:學(xué)習(xí) 【C++】初步認識C++
推薦文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。