首页 > 解决方案 > 在 C++ 中制作“对象”| C++ | JS

问题描述

所以,我对 C++ 还很陌生,并且一直在摆弄它,但不明白为什么每个人都说 C++ 是 C 的面向对象版本。确实 C 没有类、命名空间等,不像 C++ 和JavaScript,但来自 JavaScript,我发现很难与 C++ 和对象建立联系。

在 JS 中,可以简单地做

let someObject = {};

并在里面放一些数据来制作一个对象:someObject.

例如,假设我有一个在 JavaScript 中看起来像这样的对象:

JavaScript

let someObject = {
    dataType: 'char',  // string
    character: 'c',    // char
    pos: {
        line: 1,   // unsigned int
        col:  1    // unsigned int
    }
}

在 JS 中,对象不是类,但 JS 中的类和其他一切都是对象。我可以在 C++ 中使用类,但为什么呢?他们不是在 C++ 中实现这一目标的更方便的方法吗?如果是这样,怎么做?

标签: javascriptc++objectequivalent

解决方案


在 C++ 中,要创建自定义对象,您可以使用classes、structs 和unions(尽管unions 是一个更高级的主题)。

Aclass是用户定义的类型,其中默认访问修饰符是private

Astruct是 a class,但默认访问修饰符是public

Aunion是一个更高级的主题,您可以根据需要研究它。

对于你的情况,你会翻译这个:

let someObject = {
    dataType: 'char',  // string
    character: 'c',    // char
    pos: {
        line: 1,   // unsigned int
        col:  1    // unsigned int
    }
}

进入这个:

class someObject {
    std::string str = "char";
    char ch = 'c';

    unsigned int line = 1;
    unsigned int column =  1;
};

如果你愿意,你可以pos为你的 s创建一个子类 " "。int

有很多教程可供您尝试。


推荐阅读