在C++转换为常量
Converting to const in C++
C++, OS X, Carbon API.
我需要将const FSSpec
传递给方法FSpOpenDF
我有以下几点:
const FSSpec fsSpec = fFileSpec.GetFSSpec();/* is declared as FSSpec GetFSSpec() const; */
err = ::FSpOpenDF(fsSpec, 1, &refNumber);
但是我得到一个错误是:
error: cannot convert 'const FSSpec' to 'const FSSpec*' for argument '1' to 'OSErr FSpOpenDF(const FSSpec*, SInt8, short int*)'
我尝试定义为:
const FSSpec* fsSpec = fFileSpec.GetFSSpec();
这无济于事。所以显然我很困惑。
谁能解释我缺少的概念?
试试这个:
FSSpec fsSpec = fFileSpec.GetFSSpec();
err = ::FSpOpenDF(&fsSpec, 1, &refNumber);
你似乎明白在调用一个需要指针的函数时需要获取对象的地址,就像你用refNumber
一样;同样的事情只需要对fsSpec
对象做,因为需要const FSSpec*
。
可能FSpOpenDF
函数需要一个 FSSpec 指针。尝试:
err = ::FSpOpenDF(&fsSpec, 1, &refNumber);
相关文章:
- 为什么下面带有非常量转换函数的代码没有歧义?
- 如何将变量内容常量转换为 std::array 的大小?
- 将结构C++成员从非常量转换为常量
- 意外 (IMO) 常量转换警告
- 警告:ISO C++禁止将字符串常量转换为'char*' [-Wwrite-strings]
- 为什么无法将常量 X 转换为 X &?
- 重载常量和非常量转换运算符返回数组类型时出现 MSVC 错误 C2593
- 将字符串常量转换为char
- 警告:ISO C++禁止将静态“constexpr char*”数据成员的字符串常量转换为“char*”
- 错误C2662无法从常量转换为引用
- 常量转换运算符的行为
- 如何在 C 中将多字符常量转换为整数
- 从字符串常量转换,c++ 中的指针
- 从字符串常量转换为字符*
- 在这里做常量转换安全吗
- boost序列化错误C4308:负整数常量转换为无符号类型
- 不赞成从字符串常量转换为“char*”[-Wwrite strings]
- C++非常量到常量转换编译错误
- C++-不赞成在第三方标头中从字符串常量转换为“char*”
- 空指针常量转换为右值