传递NavigationPane的const引用将导致错误
Passing a const reference of a NavigationPane results in error
使用BlackBerry 10 cascade,我创建了一个类:
MyClass : public QObject
{
QObject
public:
MyClass(const bb::cascades::NavigationPane & navigationPane);
//...
protected:
bb::cascades::NavigationPane m_navigationPane;
在ccp文件中,我在构造函数中有这个:
MyClass::MyClass(const bb::cascades::NavigationPane & navigationPane)
{
m_navigationPane = navigationPane;
当我构建时,它给了我错误:
'bb::cascades::NavigationPane& bb::cascades::NavigationPane::operator=(const bb::cascades::NavigationPane&)' is private
不知道这个类,很明显它不能被复制。错误信息非常清楚:它的复制赋值操作符是私有的。这通常是为了避免复制。
从它的名字我猜它代表了一个真正的资源;复制对象是没有意义的,因为资源是唯一的。
我明白你真正需要的是你在构造函数中得到的对象。假设它的持续时间与您用它创建的MyClass
实例一样长,那么您可以在类中使用引用成员。这只能在构造函数的初始化列表中初始化,如下所示:
MyClass : public QObject
{
QObject
public:
MyClass(const bb::cascades::NavigationPane & navigationPane);
//...
protected:
const bb::cascades::NavigationPane& m_navigationPane;
构造函数是:
MyClass::MyClass(const bb::cascades::NavigationPane & navigationPane)
: m_navigationPane(navigationPane)
{
// m_navigationPane = navigationPane;
当然,如果你需要从你的MyClass
对象内部实际修改NavigationPane
实例,你只需要使用非const引用,一切都会正常工作。
相关文章:
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- C++引用错误
- 已定义函数时出现 G++ "未定义的引用"错误
- 错误:使用通用引用的声明冲突
- 链接 cmake 时出现未定义的引用错误
- 错误:未定义对'oboe::AudioStreamBuilder::openStream(oboe::AudioStream**)'的引用
- 链接器错误:未定义对"Reference_Genome::seq[abi:cxx11]"的引用
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- 在 gtest 中初始化堆栈上的引用变量的隔离错误
- 运行时错误:引用绑定到类型为"int"的空指针
- 隐式重新解释引用时强制转换,没有警告/错误
- 只有级联分类器会发出未定义的引用错误
- 错误:未定义对cv::cudacodec::createVideoReader的引用
- 模板流运算符重载错误:引用初始化无效,与basic_istream和basic_ifstream之间的差异有关
- 对于我的 ComplexNumber 中的某些方法,我得到了一个奇怪的未定义错误引用.cpp,不过我对模板很陌生
- 从对象调用成员对象,错误:引用非常量值的初始值必须是左值
- Qt并发错误:引用非静态成员