首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回const::string*&从std::string *tab[11]返回

返回const::string*&从std::string *tab[11]返回
EN

Stack Overflow用户
提问于 2014-01-19 05:29:57
回答 2查看 158关注 0票数 0

我在班上有一个字符串数组:

代码语言:javascript
复制
class A
{
   string*          tab[11];
   const string*&   getTab();
}

我把它装满了

const string &str

我的第一个想法是做:

代码语言:javascript
复制
return tab;

但是G++告诉我:

从‘std::string**’类型的rvalue中初始化“const string*&”类型的非const引用无效

我做错什么了?

我该回些什么?

(预先谢谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-19 07:44:08

string*&是对指向字符串的指针的引用。

但是,您需要返回一个指向字符串的指针数组的引用。所以您应该返回的类型是string**& (当然,它可以是const )。

另一种解决方案是使用std::array<class T, std::size_t N>类型来代替原始数组,这样您的语法就更清晰了:

代码语言:javascript
复制
class A
{
    std::array<string*, 11> tab;
    const std::array<string*, 11>& getTab();
}

std::array是原始c-数组的一个非常轻量级的包装器,因此使用它几乎不涉及性能开销。

票数 2
EN

Stack Overflow用户

发布于 2014-01-19 05:48:45

最简单的方法是声明一个合适的ty对联f:

代码语言:javascript
复制
class A
{
   typedef string Table[11];
   Table     tab;
   Table&    getTab();
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21213565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档