- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
假设我有一个名为
的基类Class Base {
public:
std::string array[];
};
字符串数组的大小直到另一个类扩展它才确定,这样做的正确语法是什么?
EG,稍后在派生类中
Derived::Derived() {
array[] = new array[40];
}
最佳答案
如果您想使用 C 风格的数组,大小必须是固定的并且在编译时已知。即使在那种情况下,您也可以使用更安全、零开销的 std::array<>
包装器代替。
如果您的容器的大小在编译时未知,那么最好使用std::vector
(或 std::deque
在某些情况下,根据您在内存分配方面的要求)并避免通过原始指针进行手动内存管理,new[]
和 delete[]
:
#include <string> // For std::string
#include <vector> // For std::vector
class Base {
public:
std::vector<std::string> myVector;
};
此外,此设计不需要在 Derived
的构造函数(和析构函数)中进行任何专门工作.如果这一切都是由 Derived
完成的的默认构造函数是分配数组,现在您可以完全避免显式定义默认构造函数,并让编译器为您隐式生成一个 - 析构函数也是如此。
此外,我不鼓励您使用标准容器类的名称(如 array
)作为变量的名称。类似于 myArray
(或 myVector
,如我上面的示例)是更合适的选择。
关于c++ - 稍后如何实例化数组的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15744096/
我正在编写一个插件,有一个ajax调用向用户显示数据。 如果用户想在ajax成功时添加一些js?他可以从他的 js 脚本中做到这一点吗,比如定位这个 ajax 成功事件。 例如: $(documen
我有 html 代码,例如 - x 最初插入 div 'insert_calendar_eda_form'。 Javascript代码 calendar_eda_add
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
我已经使用命令 sudo start myservice 启动了一个 upstart 服务。我想要一种方法,以便稍后我(或任何人)可以检查该服务是否已启动并正在运行。检查它的命令是什么? 最佳答案 找
我是一名优秀的程序员,十分优秀!