2013-02-10 27 views
0

我知道C++作爲一種編程語言的主要優點之一就是它可以支持OOP。C可以有物體嗎?

例子:

#include <iostream> 
using namespace std; 

class CRectangle { 
    int x, y; 
    public: 
    void set_values (int,int); 
    int area() {return (x*y);} 
}; 

void CRectangle::set_values (int a, int b) { 
    x = a; 
    y = b; 
} 

int main() { 
    CRectangle rect; 
    rect.set_values (3,4); 
    cout << "area: " << rect.area(); 
    return 0; 
} 

我在想,如果C還支持面向對象,如果是它是怎麼做。

+3

你甚至可以在彙編中編寫OOP,但並不那麼容易。 – 2013-02-10 17:16:10

回答

2

通常,您只需使用結構並傳遞一個上下文指針。直接轉換你的例子:

#include <stdio.h> 

struct rectangle { 
    int x, y; 
}; 

void rectangle_set_values (struct rectangle * rectangle, int a, int b) { 
    rectangle->x = a; 
    rectangle->y = b; 
} 

int rectangle_area (struct rectangle * rectangle) { 
    return rectangle->x * rectangle->y; 
} 

int main() { 
    struct rectangle rect; 
    rectangle_set_values(&rect, 3, 4); 
    printf("area: %d", rectangle_area(&rect)); 
    return 0; 
} 
相關問題