在 C++ 中制作“对象”| C++ | JS [关闭]
Posted
技术标签:
【中文标题】在 C++ 中制作“对象”| C++ | JS [关闭]【英文标题】:Making "Objects" In C++ | C++ | JS [closed] 【发布时间】:2021-07-24 19:37:21 【问题描述】:所以,我对 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++ 中实现这一目标的更方便的方法吗?如果有,怎么做?
【问题讨论】:
【参考方案1】:在 C++ 中,要创建自定义对象,您可以使用 class
es、struct
s 和 union
s(尽管 union
s 是一个更高级的主题)。
class
是用户定义的类型,其中默认访问修饰符是private
。
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
s 创建一个子类“pos
”。
有很多教程可供您尝试。
【讨论】:
尽管union
创建了一个类结构,但它不太可能是他正在寻找的东西。
@Ranoiaetep 注意到,但它可能有用。以上是关于在 C++ 中制作“对象”| C++ | JS [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Fast/Faster-RCNN 在 C++ 上制作对象检测器的最简单方法是啥?