在 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++ 中,要创建自定义对象,您可以使用 class
es、struct
s 和 union
s(尽管 union
s 是更高级的主题).
A class
是用户定义的类型,其中默认访问修饰符是 private
.
A struct
是 class
,但默认访问修饰符是 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
”。
有很多教程可供您尝试。
所以,我是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++ 中,要创建自定义对象,您可以使用 class
es、struct
s 和 union
s(尽管 union
s 是更高级的主题).
A class
是用户定义的类型,其中默认访问修饰符是 private
.
A struct
是 class
,但默认访问修饰符是 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
”。
有很多教程可供您尝试。