在 C++ 中制作 "Objects" | C++ | JS

Making "Objects" In 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++ 实现这一点的更方便的方法吗?如果可以,怎么做?

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

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

A structclass,但默认访问修饰符是 public.

一个union是一个比较高级的话题,有兴趣的可以研究一下。

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

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

如果您愿意,您可以为您的 int 创建一个子类“pos”。

有很多教程可供您尝试。