|
|
1
37
answer with a simple proof-of-concept of a C++ VLA-like class
|
|
|
2
17
|
|
|
3
15
|
|
|
4
4
|
|
|
5
3
|
|
|
6
2
variable-length array
|
|
|
7
2
|
|
|
8
2
|
|
|
9
1
|
|
|
10
0
作为C的粉丝,我认为在编码风格的概念中可能还有另外一点,那就是功能性编程,而不是面向对象的编程,即OOP!对于那些将代码作为状态机编写的人来说,这是一个非常有趣的概念!把OpenGL作为一个很好的例子。而且,由于内存引用较少,在C语言中运行代码的速度也非常快。您可能还喜欢听到许多程序员喜欢用C编写代码,因为设计简单,而且他们是如何使用C编写代码的(语法上可能不那么容易)。哦,当你想写接近硬件级别的代码时,你应该使用纯C。 |
|
|
11
0
C99的缺失特征之一是VLA,对于C++来说,它不具有等价性。 有些人甚至质疑在C++中编写类似VLA的对象的可能性。 这就是为什么我添加了这个答案:尽管略微偏离主题,但它仍然表明,使用正确的库,C++开发人员仍然可以访问模仿C99特征的对象。因此,这些特征并没有像人们想象的那样被忽略。 主要代码是:
如您所见,myvla对象知道它的大小(这比使用
当然,myvla类的行为就像一个数组,由一个大小值初始化(在运行时可以更改)。唯一的故障是由于函数的性质
下面是文件myvla.hpp中类的代码
宏是一团乱麻,可能写得更好。类本身可能不是异常安全的,但可以这样做。无论如何,它需要更多的代码才能使用(即处理复制/分配、将新的/删除设为私有、添加
点是“C++可以效仿C99 VLAS,它甚至可以作为C++对象数组工作!”我想我已经成功地证明了这一点。
|
|
|
12
-1
|
|
|
13
-2
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |