如何在类(c++)中声明/实现特定类型的数组
How to declare/implement array of certain type inside a class (c++)
我正在尝试实现一个新的类,它假设有一个这样的数组:
class myclass {
OtherClass<something1, something2>* array;
....
}
我希望我的c'dor创建一个OtherClass的size=k数组的myclass。我该怎么做?谢谢
像这样:
#include <vector>
class myclass
{
std::vector<OtherClass<something1, something2>> array;
public:
explicit myclass(std::size_t n) : array(n) { }
};
如果你真的想使用数组,你应该有这样的东西(不推荐):
class myclass {
OtherClass<Something1, Something2>* ptr_to;
public:
myclass(std::size_t sz): ptr_to(new OtherClass<Something1, Something2>[sz]) {}
~myclass(){ delete[] ptr_to; }
};
这带来了额外的问题:移动语义对于包含指针的类型来说不是很直观。一个更好的建议是使用矢量,正如Kerrek在上面指出的那样。
相关文章:
- 使用简单类型列表实现的指数编译时间.为什么
- 实现有界基元类型的c++
- 根据C++标准的定义实现"is_similar"类型特征
- 为什么 std::lerp 不适用于任何已实现所需操作的类型?
- C ++类型特征:确保子类实现方法
- 为自定义打印调试实现传递任何类型的变量
- 为 Sql 服务器实现 odbc 包装器.将数据库数据读取为字符或要求驱动程序将数据转换为 C 类型
- 将C++子类成员函数(虚拟实现)传递给 C 类型函数指针
- 使用智能指针指向 C 库中的结构,该结构通过 typedef 隐藏实现(即不完整的类型)
- 在 OpenCL 内核中实现半精度浮点数据类型
- 在头文件中使用opencv类型来实现未定义的标识符
- 如何实现对参数顺序不可知的std::same_as的广义形式(即对于两个以上的类型参数)
- 如何实现一个接受任何容器类型的函数
- 有没有一种方法可以使用SFINAE来检测一个类型是否实现了给定的抽象基类
- 实现类型类向量的元素
- 如何在 python 中实现 c++ 类型结构
- 我能否在 uint_fast64_t 和无符号长整型之间实现类型等效性
- 从Bloch的Effective Java in C++实现类型安全的异构容器(VS2010)
- SFINAE使用模板、专门化和实现类型擦除
- 使用的实现类型