最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++入門概覽和嘗試創(chuàng)建第一個C++程序

 更新時間:2015年09月07日 09:56:05   投稿:goldensun  
這篇文章主要介紹了C++入門概覽和嘗試創(chuàng)建第一個C++程序,同時也包括編寫類的示例展示C++面向對象的特性,需要的朋友可以參考下

C++程序的構成和書寫形式
1) 一個C++程序可以由一個程序單位或多個程序單位構成。每一個程序單位作為一個文件。在程序編譯時,編譯系統分別對各個文件進行編譯,因此,一個文件是一個編譯單元。

2) 在一個程序單位中,可以包括以下幾個部分:
預處理命令。上節(jié)4個程序中都包括#include命令。
全局聲明部分(在函數外的聲明部分)。在這部分中包括對用戶自己定義的數據類型的聲明和程序中所用到的變量的定義。
函數。函數是實現操作的部分,因此函數是程序中必須有的和最基本的組成部分。每一個程序必須包括一個或多個函數,其中必須有一個(而且只能有一個)主函數(main函數)。

但是并不要求每一個程序文件都必須具有以上3個部分,可以缺少某些部分(包括函數)。

3) 一個函數由兩部分組成:
函數首部,即函數的第一行。包括函數名、函數類型、函數屬性、函數參數(形參)名、參數類型。注:一個函數名后面必須跟一對圓括號, 函數參數可以缺省,如int main( )。
函數體,即函數首部下面的大括號內的部分。如果在一個函數中有多個大括號,則最外層的一對{ }為函數體的范圍。

函數體一般包括:
局部聲明部分 (在函數內的聲明部分)。包括對本函數中所用到的類型、函數的聲明和變量的定義。注:對數據的聲明既可以放在函數之外(其作用范圍是全局的),也可以放在函數內(其作用范圍是局部的,只在本函數內有效)。
執(zhí)行部分。由若干個執(zhí)行語句組成,用來進行有關的操作,以實現函數的功能。

4) 語句包括兩類:一類是聲明語句,另一類是執(zhí)行語句。 C++對每一種語句賦予一種特定的功能。語句是實現操作的基本成分,顯然,沒有語句的函數是沒有意義的。C++語句必須以分號結束。

5) 一個C++程序總是從main函數開始執(zhí)行的,而不論main函數在整個程序中的位置如何。

6) 類(class)是C++新增加的重要的數據類型,是C++對C的最重要的發(fā)展。有了類,就可以實現面向對象程序設計方法中的封裝、信息隱蔽、繼承、派生、多態(tài)等功能。在一個類中可以包括數據成員和成員函數,他們可以被指定為私有的(private)和公用的(public)屬性。私有的數據成員和成員函數只能被本類的成員函數所調用。

7) C++程序書寫格式自由,一行內可以寫幾個語句, 一個語句可以分寫在多行上。C++程序沒有行號,也不像FORTRAN或COBOL那樣嚴格規(guī)定書寫格式(語句必須從某一列開始書寫)。

8) 一個好的、有使用價值的源程序都應當加上必要的注釋,以增加程序的可讀性。C++還保留了C語言的注釋形式,可以用“/*……*/”對C++程序中的任何部分作注釋。在“/*”和“*/”之間的全部內容作為注釋。
用“//”作注釋時,有效范圍只有一行,即本行有效,不能跨行。而用“/*……*/”作注釋時有效范圍為多行。只要在開始處有一個“/*”,在最后一行結束處有一個“*/”即可。因此,一般習慣是: 內容較少的簡單注釋常用“//”,內容較長的常用“/*……*/ ”。

第一個C++程序
例1

#include <iostream> //包含頭文件iostream
using namespace std; //使用命名空間std
int main( )
{
  cout<<"This is a C++ program.";
  return 0;
}

在運行時會在屏幕上輸出以下一行信息:

This is a C++ program.

用main代表“主函數”的名字。每一個C++程序都必須有一個 main 函數。main前面的int的作用是聲明函數的類型為整型。程序第6行的作用是向操作系統返回一個零值。如果程序不能正常執(zhí)行,則會自動向操作系統返回一個非零值,一般為-1。

函數體是由大括號{  }括起來的。本例中主函數內只有一個以cout開頭的語句。注意C++所有語句最后都應當有一個分號。

再看程序的第1行“#include <iostream>”,這不是C++的語句,而是C++的一個預處理命令,它以“#”開頭以與C++語句相區(qū)別,行的末尾沒有分號。#include <iostream>是一個“包含命令”,它的作用是將文件iostream的內容包含到該命令所在的程序文件中,代替該命令行。文件iostream的作用是向程序提供輸入或輸出時所需要的一些信息。iostream是i-o-stream 3個詞的組合,從它的形式就可以知道它代表“輸入輸出流”的意思,由于這類文件都放在程序單元的開頭,所以稱為“頭文件”(head file)。在程序進行編譯時,先對所有的預處理命令進行處理,將頭文件的具體內容代替 #include命令行,然后再對該程序單元進行整體編譯。

程序的第2行“using namespace std; ” 的意思是“使用命名空間std”。C++標準庫中的類和函數是在命名空間std中聲明的,因此程序中如果需要用到C++標準庫(此時就需要用#include命令行),就需要用“using namespace std; ”作聲明,表示要用到命名空間std中的內容。

在初學C++時,對本程序中的第1, 2行可以不必深究,只需知道:如果程序有輸入或輸出時,必須使用“#include <iostream>”命令以提供必要的信息,同時要用“using namespace std;” ,使程序能夠使用這些信息,否則程序編譯時將出錯。

例2
求a和b兩個數之和??梢詫懗鲆韵鲁绦颍?br />

// 求兩數之和 (本行是注釋行)
#include <iostream> //預處理命令
using namespace std; //使用命名空間std
int main( ) //主函數首部
{ //函數體開始
  int a, b, sum; //定義變量
  cin>>a>>b; //輸入語句
  sum=a+b; //賦值語句
  cout<<"a+b="<<sum<<endl; //輸出語句
  return 0; //如程序正常結束,向操作系統返回一個零值
} //函數結束

本程序的作用是求兩個整數a和b之和sum。第1行“//求兩數之和”是一個注釋行,C++規(guī)定在一行中如果出現“//”,則從它開始到本行末尾之間的全部內容都作為注釋。

如果在運行時從鍵盤輸入

  123 456↙

則輸出為

  a+b=579

例3
給兩個數x和y,求兩數中的大者。在本例中包含兩個函數。

#include <iostream> //預處理命令
using namespace std;
int max(int x,int y) //定義max函數,函數值為整型,形式參數x,y為整型
{ //max函數體開始
  int z; //變量聲明,定義本函數中用到的變量z為整型
  if(x>y)
   z=x; //if語句,如果x>y,則將x的值賦給z
  else z=y; //否則,將y的值賦給z
   return(z); //將z的值返回,通過max帶回調用處
} //max函數結束
int main( ) //主函數
{ //主函數體開始
  int a,b,m; //變量聲明
  cin>>a>>b; //輸入變量a和b的值
  m=max(a,b); //調用max函數,將得到的值賦給m
  cout<<"max="<<m<<'\n'; //輸出大數m的值
  return 0; //如程序正常結束,向操作系統返回一個零值
} //主函數結束

本程序包括兩個函數:主函數main和被調用的函數max。程序運行情況如下:

18 25 ↙ (輸入18和25給a和b)
max=25 (輸出m的值)

注意輸入的兩個數據間用一個或多個空格間隔,不能以逗號或其他符號間隔。

在上面的程序中,max函數出現在main函數之前,因此在main函數中調用max函數時,編譯系統能識別max是已定義的函數名。如果把兩個函數的位置對換一下,即先寫main函數,后寫max函數,這時在編譯main函數遇到max時,編譯系統無法知道m(xù)ax代表什么含義,因而無法編譯,按出錯處理。

為了解決這個問題,在主函數中需要對被調用函數作聲明。上面的程序可以改寫如下:

#include <iostream>
using namespace std;
int main( )
{
  int max(int x,int y); //對max函數作聲明
  int a,b,c;
  cin>>a>>b;
  c=max(a,b); //調用max函數
  cout<<"max="<<c<<endl;
  return 0;
}
int max(int x,int y) //定義max函數
{
  int z;
  if(x>y) z=x;
  else z=y;
  return(z);
}

只要在被調用函數的首部的末尾加一個分號,就成為對該函數的函數聲明。函數聲明的位置應當在函數調用之前。

下面舉一個包含類(class)和對象(object)的C++程序,目的是使讀者初步了解C++是怎樣體現面向對象程序設計方法的。

例4
包含類的C++程序。

#include <iostream>// 預處理命令
using namespace std;
class Student// 聲明一個類,類名為Student
{
  private: // 以下為類中的私有部分
  int num; // 私有變量num
  int score; // 私有變量score
  public: // 以下為類中的公用部分
  void setdata( ) // 定義公用函數setdata
  {
   cin>>num; // 輸入num的值
   cin>>score; // 輸入score的值
  }
  void display( ) // 定義公用函數display
  {
   cout<<"num="<<num<<endl; // 輸出num的值
   cout<<"score="<<score<<endl;//輸出score的值
  };
}; // 類的聲明結束
Student stud1,stud2; //定義stud1和stud2為Student類的變量,稱為對象
int main( )// 主函數首部
{
  stud1.setdata( ); // 調用對象stud1的setdata函數
  stud2.setdata( ); // 調用對象stud2的setdata函數
  stud1.display( ); // 調用對象stud1的display函數
  stud2.display( ); // 調用對象stud2的display函數
  return 0;
}

在一個類中包含兩種成員:數據和函數,分別稱為數據成員和成員函數。在C++中把一組數據和有權調用這些數據的函數封裝在一起,組成一種稱為“類(class)”的數據結構。在上面的程序中,數據成員num,score和成員函數setdata,display組成了一個名為Student的“類”類型。成員函數是用來對數據成員進行操作的。也就是說,一個類是由一批數據以及對其操作的函數組成的。

類可以體現數據的封裝性和信息隱蔽。在上面的程序中,在聲明Student類時,把類中的數據和函數分為兩大類:private(私有的)和public(公用的)。把全部數據(num,score)指定為私有的,把全部函數(setdata,display)指定為公用的。在大多數情況下,會把所有數據指定為私有,以實現信息隱蔽。

具有“類”類型特征的變量稱為“對象”(object)。

程序中第18~24行是主函數。

程序運行情況如下:

1001 98.5 ↙  (輸入學生1的學號和成績)
1002 76.5 ↙  (輸入學生2的學號和成績)
num=1001 (輸出學生1的學號)
score=98.5  (輸出學生1的成績)
num=1002 (輸出學生2的學號)
score=76.5  (輸出學生2的成績)

您可能感興趣的文章:

相關文章

  • C++實現旋轉掃描儀的示例代碼

    C++實現旋轉掃描儀的示例代碼

    旋轉掃描儀(Rotating?Scanner),也稱為旋轉掃描儀或圓形掃描儀,是一種用于獲取圖像和文檔的設備,下面就跟隨小編一起來學習一下如何使用C++實現旋轉掃描儀功能吧
    2024-02-02
  • 在std::thread中創(chuàng)建并管理QEventLoop的全面解析

    在std::thread中創(chuàng)建并管理QEventLoop的全面解析

    QEventLoop的工作原理可以簡單地理解為一個無限循環(huán),它會不斷地檢查是否有新的事件需要處理,如果有,就將事件從事件隊列中取出,然后找到相應的事件處理器進行處理,這篇文章主要介紹了在std::thread中創(chuàng)建并管理QEventLoop的全面指南,需要的朋友可以參考下
    2023-06-06
  • C語言實現出棧序列合法性判定

    C語言實現出棧序列合法性判定

    這篇文章主要為大家詳細介紹了C語言實現出棧序列合法性判定,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C++入門到精通之循環(huán)語句的使用教程

    C++入門到精通之循環(huán)語句的使用教程

    這篇文章主要給大家介紹了關于C++中循環(huán)語句的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • 詳解C語言中const關鍵字的用法

    詳解C語言中const關鍵字的用法

    這篇文章主要對C語言中const關鍵字的用法進行了詳細的分析介紹,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • C語言如何利用異或進行兩個值的交換詳解

    C語言如何利用異或進行兩個值的交換詳解

    最近在工作中遇到了兩個值交換的需求,發(fā)現自己對異或有些忘記,所以索性寫出來,方便以后需要的時候參考學習,下面這篇文章主要給大家介紹了關于C語言如何利用異或進行兩個值的交換的相關資料,需要的朋友可以參考下。
    2017-09-09
  • C語言實現的bitmap位圖代碼分享

    C語言實現的bitmap位圖代碼分享

    這篇文章主要介紹了C語言實現的bitmap位圖代碼分享,位圖(bitmap)是一種非常常用的結構,在索引、數據壓縮等方面有廣泛應用,需要的朋友可以參考下
    2014-08-08
  • C++ OpenCV制作哈哈鏡圖像效果

    C++ OpenCV制作哈哈鏡圖像效果

    這篇文章主要介紹了使用OpenCV C++ 制作哈哈鏡圖像特效。其原理就是讓圖像像素扭曲,將像素重新進行映射。感興趣的可以跟隨小編一起試一試
    2022-01-01
  • C語言動態(tài)規(guī)劃多種背包問題分析講解

    C語言動態(tài)規(guī)劃多種背包問題分析講解

    背包問題(Knapsack problem)是一種組合優(yōu)化的NP完全問題。問題可以描述為:給定一組物品,每種物品都有自己的重量和價格,在限定的總重量內,我們如何選擇,才能使得物品的總價格最高
    2022-04-04
  • 基于MFC和OpenCV實現角點檢測

    基于MFC和OpenCV實現角點檢測

    這篇文章主要為大家詳細介紹了基于MFC和OpenCV實現角點檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03

最新評論

金沙县| 阿克苏市| 汉阴县| 泰和县| 阳城县| 安阳市| 连平县| 福建省| 英吉沙县| 新邵县| 卓资县| 辰溪县| 北辰区| 南京市| 新邵县| 电白县| 玛多县| 廊坊市| 任丘市| 宁武县| 大兴区| 农安县| 娄烦县| 荃湾区| 蓝田县| 柯坪县| 台前县| 西峡县| 三河市| 岑巩县| 叙永县| 敦化市| 洛浦县| 宁德市| 弋阳县| 阳曲县| 沙坪坝区| 齐齐哈尔市| 康平县| 寻甸| 利津县|