分享到:文章主题: Qt 特有,还是 c++ ?
zhanghaoX楼主
环顾四方有效
身份
用户
文章
2276
星座
狮子座
积分
54795
等级
沉香(10)

发信人: zhanghaoX (环顾四方有效), 信区: KDE_Qt
标  题: Qt 特有,还是 c++ ?
发信站: 水木社区 (Tue Jan 14 23:42:32 2020), 站内
  
  
    在Debian9下出现的问题。
  
  
    两个自定义的类 class A , class B
  
    其中, class B 的构造函数的参数 为 class A对象,
    然后,  
     A a ;
  
     B b1(a);
     B b2(a) ;
  
     QVector<B> vecB;
     vecB.append(b1);
     vecB.append(b2);
  
     报错,
no matching function for call to ‘B::B()’
                                  new (dst++) T();
candidate expects 1 argument, 0 provided .
  
下面的这样调用也会出问题:
    vecB.data();
    vecB[i] ;
  
  
     B的构造函数得有一个默认的参数才行 ,为毛???
  
    
--
  
※ 修改:·zhanghaoX 于 Jan 14 23:42:56 2020 修改本文·[FROM: 121.69.95.*]
※ 来源:·水木社区 http://tfrqsb.com·[FROM: 121.69.95.*]

返回顶部
hgoldfish第1楼
老鱼
身份
版主
文章
69444
积分
99756
等级
斗拱(14)

发信人: hgoldfish (老鱼), 信区: KDE_Qt
标  题: Re: Qt 特有,还是 c++ ?
发信站: 水木社区 (Wed Jan 15 00:05:02 2020), 站内
  
cpp stl 的 vector<> 也一样,需要一个复制构造函数。
  
class B {
public:
     B();                  // 构造函数
     B(const B &other);    // 复制构造函数
};
  
兰溪棋牌_[官网入口]这是 cpp 的问题。
  
【 在 zhanghaoX (环顾四方有效) 的大作中提到: 】
:    在Debian9下出现的问题。
:    两个自定义的类 class A , class B
:    其中, class B 的构造函数的参数 为 class A对象,
: ...................
  
--
灭绝人性啊
  
  
※ 来源:·水木社区 tfrqsb.com·[FROM: 112.47.93.*]

返回顶部
zhanghaoX第2楼
环顾四方有效
身份
用户
文章
2276
星座
狮子座
积分
54795
等级
沉香(10)

发信人: zhanghaoX (环顾四方有效), 信区: KDE_Qt
标  题: Re: Qt 特有,还是 c++ ?
发信站: 水木社区 (Wed Jan 15 00:10:33 2020), 站内
  
  
  
   把 B的构造函数的参数改为 A的指针就可以,为何 ?
  
  
【 在 hgoldfish (老鱼) 的大作中提到: 】
: cpp stl 的 vector<> 也一样,需要一个复制构造函数。
: class B {
: public:
: ...................
  
--
  
※ 来源:·水木社区 http://tfrqsb.com·[FROM: 121.69.95.*]

返回顶部
hgoldfish第3楼
老鱼
身份
版主
文章
69444
积分
99756
等级
斗拱(14)

发信人: hgoldfish (老鱼), 信区: KDE_Qt
标  题: Re: Qt 特有,还是 c++ ?
发信站: 水木社区 (Wed Jan 15 00:16:26 2020), 站内
  
兰溪棋牌_[官网入口]发个最小可重现代码看看吧。
  
我 cpp 不是很熟。依样画葫芦能用就行。
  
只知道 vector<> 需要这两个构造函数,或许再加一个 B(const B&&),剩下的懒得管了。
  
【 在 zhanghaoX (环顾四方有效) 的大作中提到: 】
:   把 B的构造函数的参数改为 A的指针就可以,为何 ?
  
  
--
灭绝人性啊
  
  
※ 来源:·水木社区 tfrqsb.com·[FROM: 112.47.93.*]

返回顶部
zhanghaoX第4楼
环顾四方有效
身份
用户
文章
2276
星座
狮子座
积分
54795
等级
沉香(10)

发信人: zhanghaoX (环顾四方有效), 信区: KDE_Qt
标  题: Re: Qt 特有,还是 c++ ?
发信站: 水木社区 (Wed Jan 15 00:19:16 2020), 站内
  
  
  
     class x
     {
     public:
       x(int a)  
     { int b = a ;} ;
     } ;
  
  
QVector< x > vec_X ;
  
x x1(1);
x x2(2);
  
vec_X.append( x1 )  ;
vec_X.append( x2  ) ;
  
x *xx = vec_X.data();
x xx1 = vec_X[1];
  
  
  找到一个一样的:
  
http://stackoverflow.com/questions/26076997/in-constructor-candidate-expects-1-argument-0-provided
  
  
【 在 hgoldfish (老鱼) 的大作中提到: 】
兰溪棋牌_[官网入口]: 发个最小可重现代码看看吧。
: 我 cpp 不是很熟。依样画葫芦能用就行。
: 只知道 vector<> 需要这两个构造函数,或许再加一个 B(const B&&),剩下的懒得管了。
  
--
  
※ 来源:·水木社区 http://tfrqsb.com·[FROM: 121.69.95.*]

返回顶部
libgcc第5楼
承接各种水军业务
身份
用户
文章
83407
星座
狮子座
积分
24831
等级
沉香(10)

发信人: libgcc (承接各种水军业务), 信区: KDE_Qt
标  题: Re: Qt 特有,还是 c++ ?
发信站: 水木社区 (Wed Jan 15 01:07:42 2020), 站内
  
卧槽十大了,本版巅峰
--
  
※ 来源:·水木社区 http://m.tfrqsb.com·[FROM: 171.83.95.*]

返回顶部
fanci第6楼
大葡萄
身份
版主
文章
10446
星座
水瓶座
积分
53673
等级
沉香(10)

发信人: fanci (大葡萄), 信区: KDE_Qt
标  题: Re: Qt 特有,还是 c++ ?(3)
发信站: 水木社区 (Wed Jan 15 07:37:55 2020), 站内
  
不 default constructible
  
换句话说默认的“空”对象长啥样不知道  
    
【 在 zhanghaoX () 的大作中提到: 】
:  
:     class x
:     {
:     public:
--
发自xsmth (iOS版)
--
  
※ 来源:·水木社区 http://m.tfrqsb.com·[FROM: 138.19.103.*]

返回顶部
wjstone第7楼
满庭芳
身份
用户
文章
606
积分
38566
等级
椽桷(13)

发信人: wjstone (满庭芳), 信区: KDE_Qt
标  题: Re: Qt 特有,还是 c++ ?
发信站: 水木社区 (Wed Jan 15 08:53:39 2020), 站内
  
vector里面一般存放指针
--
  
※ 来源:·水木社区 http://m.tfrqsb.com·[FROM: 140.207.23.*]

返回顶部
javaboy第8楼
喝了咖啡就话多-_-;
身份
版主
文章
17063
积分
81693
等级
椽桷(13)

发信人: javaboy (喝了咖啡就话多-_-;), 信区: KDE_Qt
标  题: Re: Qt 特有,还是 c++ ?
发信站: 水木社区 (Wed Jan 15 11:24:51 2020), 站内
  
哈哈哈哈哈
  
【 在 libgcc (承接各种水军业务) 的大作中提到: 】
: 卧槽十大了,本版巅峰
  
  
--
  
※ 来源:·水木社区 tfrqsb.com·[FROM: 116.234.18.*]

返回顶部
javaboy第9楼
喝了咖啡就话多-_-;
身份
版主
文章
17063
积分
81693
等级
椽桷(13)

发信人: javaboy (喝了咖啡就话多-_-;), 信区: KDE_Qt
标  题: Re: Qt 特有,还是 c++ ?
发信站: 水木社区 (Wed Jan 15 11:27:51 2020), 站内
  
这是c++的问题。
  
看上去QVector存取对象的时候需要拷贝构造。类没有拷贝构造的时候就会报这个错。
  
另外,如果你没有提供默那个x(int)的构造函数,这个class x就是POD。C++编译器会自动生成一个拷贝构造函数,也不会报错。
  
【 在 zhanghaoX (环顾四方有效) 的大作中提到: 】
:     class x
:     {
:     public:
:       x(int a)  
:     { int b = a ;} ;
:     } ;
: QVector< x > vec_X ;
: x x1(1);
: x x2(2);
: vec_X.append( x1 )  ;
: vec_X.append( x2  ) ;
: x *xx = vec_X.data();
: x xx1 = vec_X[1];
:  找到一个一样的:
: http://stackoverflow.com/questions/26076997/in-constructor-candidate-expects-1-argument-0-provided
  
  
--
  
※ 来源:·水木社区 tfrqsb.com·[FROM: 116.234.18.*]

返回顶部
  • 文章数:16 分页:
    1. 1
    2. 2
    3. >>

页面底部区域 foot.htm