返回自定义类数组的c ++函数会出错
Posted
技术标签:
【中文标题】返回自定义类数组的c ++函数会出错【英文标题】:c++ function returning a custom class array gives an error 【发布时间】:2012-11-06 20:13:53 【问题描述】:我有一堂课:
class cAsset
public:
void data(int);
int returnInfo(void);
和一个假设返回 cAssets 数组的函数
cAsset[] myFunc(int a, int b)
...
错误是:
Expected member name or ';' after declaration specifiers
我错过了什么?
【问题讨论】:
***.com/questions/9995564/… 你错过了你的 C++ 书。 让我们point him at one,@LightnessRacesinOrbit。 @Robᵩ:是的,让我们来吧!也许会是better than the one,他当然在网上提问之前已经在阅读了…… 【参考方案1】:您不能在 C++ 中返回数组。请尝试返回 std::vector<cAsset>
。
std::vector<cAsset> myFunc(int a, int b)
std::vector<cAsset> result;
result.push_back(cAsset(4,2));
result.push_back(cAsset(a,b));
return result;
【讨论】:
有趣。有什么理由吗?我的意思是,我认为您可以声明数组,还是仅仅因为向量接受泛型类? 可以声明数组。您不能分配给/从它们,也不能从函数中返回它们。至于“为什么”:数组和指针的工作方式与它们在 C 中的工作方式相同,即高效且不直观。 啊,好的。很高兴知道。感谢@Rob 的帮助。我想知道为什么会这样。 另一个选项,在 C++11 中是std::array<cAsset, N>
,其中 N 是编译时已知常量。以上是关于返回自定义类数组的c ++函数会出错的主要内容,如果未能解决你的问题,请参考以下文章