例如,请考虑以下代码:
Rectangle {
id: idRectParent
Rectangle {
id: idRectChild1
component.onCompleted: {
console.log("Iam Child 1")
}
}
Rectangle {
id: idRectChild2
component.onCompleted: {
console.log("Iam Child 2")
}
}
component.onCompleted : {
console.log("Iam parent Rect")
}
}
Run Code Online (Sandbox Code Playgroud)
如果我运行它,qmlscene我会得到下面的输出(我已经尝试了近50次).
Iam parent Rect
Iam Child 2
Iam Child 1
Run Code Online (Sandbox Code Playgroud)
为什么输出按上述顺序排列,而不是:
Iam parent Rect
Iam Child 1
Iam Child 2
Run Code Online (Sandbox Code Playgroud)
要么
Iam Child 1
Iam Child 2
Iam parent Rect
Run Code Online (Sandbox Code Playgroud)
或任何其他组合.
这是我的QML文件,其中包含Text组件:
import QtQuick 2.0
Item {
id: idItmWrapText
Text {
id: idTxtTitle
text: qsTr("Hello World")
font.pointSize: 20
}
}
Run Code Online (Sandbox Code Playgroud)
现在在Test.qml文件中我将实例化上面的组件三次,但它只在输出中显示一次.我的Test.qml文件如下所示:
import QtQuick 2.0
Item {
id: idItmWrapRect
width: 400
height: 400
Rectangle{
id: idRectDisplay
width: parent.width
height: parent.height
Column {
id: idClmnLayout
spacing: 50
x: 195
y: 200
MyText{
}
MyText{
}
MyText{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
**Hello World** //showing only once
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
编译器抱怨D的构造函数因为生病原因而被删除了?
#include<iostream>
using namespace std;
class A
{
int x;
public:
A(int i) { x = i; }
void print() { cout << x; }
};
class B: virtual public A
{
public:
B():A(10) { }
};
class C: virtual public A
{
public:
C():A(10) { }
};
class D: public B, public C {
};
int main()
{
D d;
d.print();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
产量
main.cpp:37:4:错误:使用删除的函数'D :: D()'D d; ^ main.cpp:32:7:注意:'D :: D()'被隐式删除,因为默认定义不正确:D类:公共B,公共C {^
我通过一个名为size的变量动态传递数组大小,它在c中工作正常但在c ++中没有.请告诉我原因,提前致谢.
#include <iostream>
#include <stdlib.h>
using namespace std;
int size;
int main(int argc, char *argv[])
{
int i ;
int *a[size];
cout<<"Enter size";
cin >> size;
for(i =0; i < size ;i++)
{
cout<<"Enter value:" ;
cin>>a[i] ;
}
for(i=0 ; i < size; i++)
{
cout<<a[i]<< " ";
}
system("PAUSE");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我已经通过适当的I/O更改执行了相同的程序,它已正确执行.
另外,在数组声明时,请帮助我理解编译器在这种情况下的行为.