我已经下载了一个存储库
git clone <address>
Run Code Online (Sandbox Code Playgroud)
我已经做了一些修改并编辑了一些文件,现在我想丢弃所有内容,并确保我在磁盘上的内容只不过是代码库的原始远程版本:什么是正确的命令?
为什么我不能那样做
class A {
public:
int x = 10;
...
};
Run Code Online (Sandbox Code Playgroud)
我必须那样做?
class A {
public:
int x;
A(){
x = 10;
...
}
...
};
Run Code Online (Sandbox Code Playgroud)
这是因为C++试图比C这样的语言更安全?还有其他原因吗?
下面的代码被编译在 g++ 4.6.3 for Linux
#include <iostream>
class A {
public:
int x;
std::string c;
A(int x,std::string c):x(10),c("Hi"){
}
~A(){
std::cout << "Deleting A()" << std::endl;
}
};
class B : public A {
public:
B():A(20,"Hello"){
}
~B(){
std::cout << "Deleting B()" << std::endl;
}
};
int main(){
B o;
std::cout << o.x << std::endl;
std::cout << o.c << std::endl;
return(0);
}
Run Code Online (Sandbox Code Playgroud)
但它没有做应该做的事情,类型 B 无法更改它从 A 继承的那 2 个变量的值。
关于为什么这不能正常工作的任何解释?
可能重复:
C++ 11 lambda表达式末尾的圆括号
#include <iostream>
int main(int argc, char* argv[])
{
int j;
[&](){j = 10;}(); // why I need the last rounded parentheses () and what is their purpose ?
// ...
return(0);
}
Run Code Online (Sandbox Code Playgroud)
我几乎得到了关于lambda如何工作的所有内容,我的最后一个问题是关于为什么我需要上面代码中报告的最后几个括号.
lambda的蓝图是
[](){}
Run Code Online (Sandbox Code Playgroud)
另外,我在这里通过引用为我的lambda输入一个输入,我正在j用这个lambda 直接写入,但我的编译器抱怨这个lambda生成一个未使用的值,如果我不把额外的东西()放在最后兰达的.
所以,最后,一个lambda就是这个
[](){}
Run Code Online (Sandbox Code Playgroud)
或这个
[](){}()
Run Code Online (Sandbox Code Playgroud)
?
我正在尝试一些用于某些C++调用的Python API,我发现性能没有下降.实际上,我认为只用C++编写的等效应用程序有点慢/拉.
特别是,我在C++中尝试Pyside和一些QT应用程序.
现在我知道GUI喜欢那些对动态绑定有很好支持的语言,但是我对Python内部结构不太了解:是否有一些解释为什么Pyside应用程序至少和C++等价物一样快?
如果我在C++程序中提供Python API,那么成本是多少?还有一个间接?
PS
python是否为跨平台开发提供了一些原生的Windowing框架?