1. 程式人生 > >c++面向過程和麵向物件

c++面向過程和麵向物件

#include <iostream>

using namespace std;

class Dog
{
public:
    char name[64];
    //面向物件,方法在類的內部,因為物件的本質是class型別的變數,方法在類內部時,物件呼叫自身內部的方法就可以完成需求,即以物件為中心的程式設計思想
    void eat(char *food)
    {
        cout << name << " eat " << food << endl;
    }
};

//面向過程,方法(即函式)在類的外面,方法不屬於類
void eat(class Dog &dog, const char *food)
{
    cout << dog.name << " eat " << food << endl;
}

//圓的周長
double getCircleGirth(double r)
{
    return 2 * 3.14 * r;
}
//圓的面積
double getCircleArea(double r)
{
    return 3.14 * r * r;
}

//命名規範
//1.類的名字首字母大寫
//2.方法的名字首個單詞全小寫,其餘單詞首字母大寫
//面向物件
class Circle
{
public:
    void setR(double r)
    {
        my_r = r;
    }
    double getCircleGirth()
    {
        return 2 * 3.14 * my_r;//my_r為類內部私有成員變數,類內部的方法可以直接呼叫,不會產生歧義
    }
    double getCircleArea()
    {
        return 3.14 * my_r * my_r;
    }
private:
    //circle類的私有成員,即圓的半徑
    double my_r;
    //下面一段程式碼的寫法是錯誤的,首先初始化類的物件時,變數與變數是同級且互不干擾的
    //my_r初始化時是沒有值的,也就是是亂碼,當my_girth初始化時是2 * 3.14 * my_r(亂碼),當呼叫物件的方法時,雖然my_r被重新賦值了,但是my_girth與my_r此時是同級且互不相關的,所以這種寫法是錯誤的
    //float my_girth = 2 * 3.14 * my_r;
};

int main()
{
    Dog dog;
    strcpy_s(dog.name, strlen("dahuang") + 1, "dahuang");
    //面向過程,以方法(函式)為中心
    eat(dog, "beaf");//"beaf"為字串常量,型別為const char *,所以在宣告函式時,函式第二個引數因為const char *型別,宣告char *型別會報錯
    //面向物件,以物件(變數)為中心
    char food[64] = "apple";//這種定義,food為區域性變數,不在常量區了
    //const char *food = "apple"
    dog.eat(food);

    double r = 10;
    double girth;
    double area;
    girth = getCircleGirth(r);
    area = getCircleArea(r);
    cout << "circle girth=" << girth << endl;
    cout << "circle area=" << area << endl;

    Circle circle;
    circle.setR(10);
    cout << "circle girth=" << circle.getCircleGirth() << endl;
    cout << "circle area=" << circle.getCircleArea() << endl;
    return 0;
}

相關推薦

c++面向過程和麵物件

#include <iostream>using namespace std;class Dog{public:    char name[64];    //面向物件,方法在類的內部,因為物件的本質是class型別的變數,方法在類內部時,物件呼叫自身內部的方法就

Linux C/C++教程(一)-- 面向過程和麵物件

目錄   一、面向過程 二、面向物件 一、面向過程 面向過程是一種以過程為中心的程式設計思想。分析問題的解決步驟,通過函式一步步實現,然後順序呼叫函式來執行。主要缺點在於複用性、維護性、拓展性比較差。 二、面向物件 面向物件採用物件(實體)的方式建立抽象

028_面向物件_01_面向過程和麵物件的本質區別

一、本質   a)面向過程(Procedure Oriented):是一種以過程為中心的程式設計思想。這些都是以什麼正在發生為主要目標進行程式設計,不同於面向物件的是誰在受影響。與面向物件明顯的不同就是封裝、繼承、類。   b)面向物件(Object Oriented,OO):是軟體開發方法。面向物件的概

面向過程和麵物件

面向過程程式設計: 以事件為中心,以功能為導向,分析某個問題的所需要的步驟,實現每個步驟的函式,不斷呼叫函式。 面向過程程式設計,首先是如何操作資料,在考慮如何組織資料。資料和對資料的操作是分離的。 面向過程程式設計以設計各個功能模組為中心,難於維護。 面向

java知識點7——面向過程和麵物件面向物件的記憶體分析、構造方法

面向過程和麵向物件 解決簡單問題可以使用面向過程 解決複雜問題:巨集觀上使用面向物件把握,微觀處理上仍然是面向過程。 面向物件具有三大特徵:封裝性、繼承性和多型性,而面向過程沒有繼承性和多型性,並且面向過程的封裝只是封裝功能,而面向物件可以封裝資料和功能。所以面向物件優

面向過程和麵物件程式設計的的思想理解

      之所以寫這邊部落格,是因為昨日和一位電子專業的好友,聊起了這個專業問題,我卻沒有用通俗易懂的例子來解釋它們,雖然已經把C語言過了一遍,Java也學了好一段時間,但是真正去向一個外行人解釋,感覺只可意會不言傳的感覺,為此非常的懊惱。 面向過程:是一種以過程為中

2017033002簡介面向過程和麵物件

面向過程的結構化程式設計方法 設計思路 – 自頂向下、逐步求精。採用模組分解與功能抽象,自頂向下、分而治之。 l程式結構: – 按功能劃分為若干個基本模組,形成一個樹狀結構。 – 各模組間的關係儘可能簡單,功能上相對獨立;每一模組內部均是由順序、選擇和迴圈三種基本結構組成。

python:面向過程和麵物件程式設計思想

一、區別 面向過程:在實現的時候,每個過程都需要一個函式 面向物件: 二、面向物件和類 類的組成:以狗為例 (1)類名:(狗) (2)類的屬性:一組資料(狗的毛色,重量等) (3)類的方法

簡單通俗的說一下什麼是面向過程和麵物件

網上關於這兩個的回答真的很多,但是都有一個共同特點:------------不容易懂。我今天就簡單通俗的說一下(當然,如果你要非常深入的瞭解,這篇不適合你。如果你只是為了瞭解什麼是面向過程和麵向物件,怎麼面對考試,面對面試,怎麼和別人說兩者區別,看我下面幾段話夠了。)----

js的兩面-面向過程和麵物件

js是面向過程還是面向過程?一直以來,頂級大師各有各的說法,這裡不敢妄加評論。 面向過程就是函數語言程式設計,按照傳統流程編寫一個又一個的函式來解決需求的方式。 面向過程適合一個人的專案,如果是團隊合作,別人想修改你的程式碼就不利於維護了。所以下面著重聊聊面向物

面向過程程式設計和麵物件程式設計的區別

面向過程程式設計 面向過程程式設計是一種以過程為中心的程式設計思想,分析出解決問題的步驟,然後用函式把這些步驟一步一步實現。面向過程程式設計,資料和對資料的操作是分離的。 面向物件程式設計 面向物件程式設計是將事物物件化,通過物件通訊來解決問題。面向物件程式設計,資料和對資料的操作

面向過程程式設計思想和麵物件程式設計思想

一、面向過程程式設計思想 百度百科這樣解釋: “面向過程”(Procedure Oriented)是一種以過程為中心的程式設計思想。 面向過程其實是最為實際的一種思考方式,就算是面向物件的方法也是含有面向過程的思想。可以說面向過程是一種基礎的方法。它考慮的

面向過程設計和麵物件設計之間區別的例項

你也可以檢視我的其他同類文章,也會讓你有一定的收貨! 參考:http://blog.sina.com.cn/s/blog_46552dd90100eg5l.html 問題:我在一個新的專案中使用UML中的用例分析和概念模型。但是老闆堅持要用傳統的需求說明

C語言到C++ 面向過程面向物件的轉變

案例1   #include <iostream> using namespace std; class Cube { private: int m_a; int m_b; int m_c; int m_v; int m_s; public: void

面向函式程式設計和麵物件程式設計的區別和使用

簡述面向函式程式設計和麵向物件程式設計的區別? 什麼時候使用面向函式程式設計?什麼時候使用面向物件程式設計? 函數語言程式設計,顧名思義,這種程式設計是以函式思維做為核心,在這種思維的角度去思考問題。 這種程式設計最重要的基礎是λ演算,接受函式當作輸入和輸出。 面向物件程式設計,這種程

面向介面程式設計和麵物件程式設計的區別

我想,對於各位使用面向物件程式語言的程式設計師來說,“介面”這個名詞一定不陌生,但是不知各位有沒有這樣的疑惑:介面有什麼用途?它和抽象類有什麼區別?能不能用抽象類代替介面呢?而且,作為程式設計師,一定經常聽到“面向介面程式設計”這個短語,那麼它是什麼意思?有什麼思想內涵?

c++面向物件c面向過程的一些概念

1.面向物件和麵向過程的概念 面向過程是分析解決問題的步驟,然後用函式把這些步驟一步一步的實現,然後在使用的時候一一呼叫則可。 面向物件是把構成問題的事務分解成各個物件,而建立物件的目的也不是為了完成一個個步驟,而是為了描述某個事物在解決整個問題的過程中所發生的行為。 2.

return函式提前傳參和麵物件的程式設計方式

function request({method,data}){f.c(data)}   function get(v){ return request({method:'GET', data:v}) } f

CMM模型,結構化開發方法和麵物件開發方法的比較,

CMM模型 一、CMM簡介 CMM,英文全稱為Capability Maturity Model for Software,即:軟體成熟度模型。 CMM的核心是把軟體開發視為一個過程。它是對於軟體在定義、實施、度量、控制和改善其軟體過程的實踐中各個發展階段的描述。 根據這一原則對軟體開發和維護進行過程

建構函式與原型鏈和麵物件的學習(三)

下面對面向物件寫個小案例(紅綠燈) 上面是原圖 用來來實現點選圖片,紅綠燈的顏色改變,控制背景圖片的定位來改變 點選一下 就是要完成上面的效果 如果只要實現一個 CSS div{ width: 335px; height: 890px; margin-left: