是什么区别public,private以及protected用C++继承?我在SO上发现的所有问题都涉及具体案例.
我觉得这有点主观; 我不确定这个意见是否会一致(我已经看过很多代码片段,其中返回了引用).
根据对这个问题的评论我刚刚问过,关于初始化引用,返回引用可能是邪恶的,因为,[据我所知]它更容易错过删除它,这可能导致内存泄漏.
这让我很担心,因为我跟随了一些例子(除非我想象的事情)并且在相当多的地方做到了这一点......我误解了吗?这是邪恶的吗?如果是这样,那有多邪恶?
我觉得因为我的指针和引用混合在一起,再加上我是C++的新手,以及对什么时候使用的完全混淆,我的应用程序必须是内存泄漏地狱......
另外,我知道使用智能/共享指针通常被认为是避免内存泄漏的最佳方法.
为什么必须通过引用传递复制构造函数的参数?
int *nums = {5, 2, 1, 4};
printf("%d\n", nums[0]);
Run Code Online (Sandbox Code Playgroud)
导致段错误,而
int nums[] = {5, 2, 1, 4};
printf("%d\n", nums[0]);
Run Code Online (Sandbox Code Playgroud)
没有.现在:
int *nums = {5, 2, 1, 4};
printf("%d\n", nums);
Run Code Online (Sandbox Code Playgroud)
打印5.
基于此,我猜想数组初始化符号{}会盲目地将这些数据加载到左边的任何变量中.当它是int []时,数组将根据需要填充.当它是int*时,指针被填满5,并且存储指针之后的存储器位置被填充为2,1和4.因此nums [0]尝试deref 5,导致段错误.
如果我错了,请纠正我.如果我是正确的,请详细说明,因为我不明白为什么数组初始化程序按照它们的方式工作.
我目前正在阅读K&R的书并在第一部分中输入示例,并且有几个例子如下:
while((c = getchar()) != EOF) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
我正在Windows框中测试这些示例,从而从cmd提示符运行已编译的exe文件.
要测试上面的例子,我该如何模拟EOF?也就是说,从命令提示符测试示例时,基本上如何使循环停止?
我见过人们在类中使用尾随下划线作为成员变量,例如在着名的C++ FAQ Lite中.
我认为它的目的不是将变量标记为成员,而是"m_"的用途.它的实际目的是使一个名为field的访问器方法成为可能,如下所示:
class Foo {
public:
bar the_bar() { return the_bar_; }
private:
bar the_bar_;
}
Run Code Online (Sandbox Code Playgroud)
访问器省略了"get_"部分在STL和boost中是常见的,我正在尝试尽可能接近这些开发编码风格,但我不能真正看到它们使用下划线技巧.我无法在STL或boost中找到一个只返回私有变量的访问器.
我有几个问题我希望你能回答:
需要知道如何遍历stl地图.我不想用它的钥匙.我不关心排序,只是一种访问它包含的所有元素的方法.有没有办法做到这一点?
我是branch1当我结帐branch2这样的(这两个分支的存在).
git checkout origin/branch2
然后我得到一个超然的头错误:
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
Run Code Online (Sandbox Code Playgroud)
但后来我只是结帐branch2(没有origin)然后它工作正常:
git checkout branch2
那么git checkout有没有什么区别origin/; 以及detached HEAD使用时出现错误的原因origin/?
我发现有几个android wifi应用程序(WiFi管理器,WiFi分析器)显示除了BSSID/SSID等之外的WiFi网络的频道号.但我找不到任何关于他们如何做的信息.我唯一知道的是我可以获得一些wifi频率.也许他们确定了与该频率相对应的频道?有没有办法在android中检测wifi网络的频道?当然这个信息并不是什么大问题,我可以没有它:)但我仍然很好奇......