javascript - 在 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 是一个更高级的主题)。
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
有很多教程可供您尝试。
推荐阅读
- javascript - 使用 Openseadragon 在大图像上使用 IE 11/Edge 得到“IndexSizeError”
- python-2.7 - 在 Python 中结束循环时停止 While 循环
- ubuntu - 粉碎(破折号)不在ubuntu上发送事件
- css - Jekyll - 推荐的文件导入方式
- javascript - React Native,Flex Box 有问题
- vba - 优化 VBA 程序
- python - 将标签、文本框和按钮添加到 tkinter 画布
- regex - 使用 PCRE 正则表达式从 LOG 中列出所有 ipv4 地址
- java - 无法读取路径的文件,因为它包含希腊字符
- mysql - 仅显示同时拥有这两种类型的记录且仅显示这些记录的客户