【问题标题】:c++ Getting non syntax use "&" to create a pointer [closed]c ++获取非语法使用“&”创建指针[关闭]
【发布时间】:2018-09-17 07:36:25
【问题描述】:

我一直在编写我的代码,但似乎无法修复它的 c_str': non-standard syntax; 这个错误。使用 '&' 创建一个指向成员的指针,我不确定我做错了什么。

 HSAMPLE sample = BASS_SampleLoad(FALSE, fi.Recv_Song().c_str, 0, 0, 1, BASS_SAMPLE_MONO);

我从 fi.Recv_song.c_str 变量中得到错误,它假设是文件位置的字符串,因此它的函数可以从该位置播放 mp3 文件。附言。 recv 函数是我在头文件中创建的。

string &Get_Song()
{
    cin >> song;                  //this is the header file it is in.
    mpc = path + song;
     return mpc;
}
string Recv_Song()
{
    return mpc;
}

【问题讨论】:

  • c_str 是一个函数,而不是一个变量。投票结束为错字。
  • 这是导致错误的原因,似乎是给出的错误代码
  • 是的,这就是导致错误的原因。您需要调用该函数,就像使用 Recv_Song 一样。
  • 只是想知道 - 你为什么要通过引用返回字符串 (mpc) 一次,然后按值返回?如果您通过引用返回,请考虑返回 const 引用 - 否则,用户可能会以不适合实现的方式修改字符串...
  • 糟糕的错误信息 - 编译器应该考虑在提出建议之前同时添加 () 和 `&``。几乎可以肯定,两者中只有一个使代码编译。

标签: c++ function mp3


【解决方案1】:

换行:

HSAMPLE sample = BASS_SampleLoad(FALSE, fi.Recv_Song().c_str, 0, 0, 1, BASS_SAMPLE_MONO);

HSAMPLE sample = BASS_SampleLoad(FALSE, fi.Recv_Song().c_str(), 0, 0, 1, BASS_SAMPLE_MONO);

c_str() 是一个函数,您必须将其作为一个函数调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 2020-03-30
    • 1970-01-01
    • 2017-09-16
    相关资源
    最近更新 更多