c++ - C可以有对象吗?

标签 c++ c oop

<分区>

我知道 C++ 作为一种编程语言的主要优点之一是它可以支持 OOP。

例子:

#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 是否也支持 OOP,如果支持,它是如何实现的。

最佳答案

通常,您只需使用结构并传递一个上下文指针。直接转换您的示例:

#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;
}

关于c++ - C可以有对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14799809/

相关文章:

c - 共享内存在 C 中不与进程共享

c# - UWP 对 opengl 的支持

python - 如何为opencv安装gstreamer 1.0 badplugin?

c - 如何处理解码 Base64 字符串时出现的错误

javascript - OOP Javascript - 通过另一个公共(public)方法从公共(public)方法访问特权方法

java - 对象组合相对于类继承的缺点

c++ - 动态转换和静态转换的奇怪行为

c++ - 抽象基类中的嵌套类定义 (C++)

c++ - 函数 std::make_shared<vector> 的参数太多

c - 将结构体的地址分配给C中的其他结构体